質問タイトルは多少曖昧かもしれませんので、それをもっと意味のあるものに変更してみてください。私はちょうど正しい言葉を見つけることができませんでした。だからここ複数の列で並べ替えることはできますが、値で並べ替えることはできません。
は私の問題である:
私のテーブルでは2つの重要な列がある
- DATE_ADDED(datetime値)
- special_price(数値)
special_priceのいずれかでありますNULL
または特別価格が何であるかに応じた数値。
私は今、私の結果を注文したいの方法を説明します:私はその後、私は見たいと思って、日付(新しい順)が発注なしspecial_price(NULL
)を持つすべての項目を見てみたい
ファーストを特別価格(NULL
以外のもの)を日付順に並べた商品。
は、最初に私はこれを試してみました:
SELECT * FROM products ORDER BY special_price, date_added DESC
これは、すべてのspecial_price値NULL
最初の部分のために素晴らしい仕事が、それはその値にspecial_priceを注文したんでしたアイテムを開始したときspecial_price列にありました。これは、質問でspecial_priceから最初に注文したかったので、もちろん意味があります。
クエリはspecial_priceの値を無視し、それがNULL
であるかどうかを確認するにはどうすればよいですか?だから私はすべてNULL
の日付で注文し、その後すべてNOT NULL
の日付で注文して取得します。
ニースとシンプルな、単一のSELECT 1 – gbn
パーフェクトを達成したいのために正常に動作します
SELECT *, IF(special_price IS NULL, 0, 1) AS orderer FROM products ORDER BY orderer, date_added DESC
!私は決してこれを自分自身で考え出したことはありませんでした。 – Pieter888