2011-07-20 17 views
4

データ型がdateintbigintの3つのフィールドがあるテーブルがあります。複数の列を異なるソート順で並べ替える

これらの3つの列をすべて使用して選択クエリを並べ替える必要があります。それらをすべて降順にソートしたいと思います。たとえば、

Select * From mytbl 
order by date desc,intnum desc, bigintnum desc; 

すべての3つの列のうち最大値から結果が得られる可能性はありますか。 は、最新の日付、最高のintnum、最高のbigintnumを好きです。

+4

入力したクエリは有効です。 PS:MySQLのdba質問SQLの基本的な質問はおかしく見える;-) – zerkms

+0

@Devjosh:だから何ですか? **各列の値が最も高い順に開始されたすべてのフィールドの子孫によって順序付けられた結果セットを得ることが可能です**。 – zerkms

+0

@zerkms、MySQL DBA:はい、可能です:)私の同輩が質問に投稿した質問は何も間違っていません。 – Devjosh

答えて

2

なし

何あなたのクエリがないことは言い換えればmax date

max intnummax bigintnum続いmax datemax intnum続いmax dateを、取得され、クエリが最大値を返しません3つの列すべての値

最初に日付を入力してからintnumを入力し、次にbigintnum 結果は次のようになります

2011-07-20 12 14 
2011-07-20 12 13 
2011-07-20 11 16 
2011-07-20 10 12 
2011-07-19 20 15 
2011-07-18 60 30 
2011-07-18 50 14 
+0

私はちょうどそれを試してみましたが、それはあなただけの私の答えを誤解行動 –

+0

であるか、あなただけの混乱している –

+0

はい、I愚か者よ、あなたを+1しました。申し訳ありません。 – zerkms

1

すべての3つの列のうち最大値から結果を得ることはできません。最新の日付、最高のintnumとhigest bigintnumのように。

Select * From mytbl 
order by date desc,intnum desc, bigintnum desc; 

あなたはORDER BY句で複数の列を持っている場合、それはDATE DESCによる最初の順序はその後、非常に最初の日のためにそれがINTNUM DESCで注文し、その後BIGINTNUMによって順番ます、ORDER BYが何をするか知っているように。

関連する問題