1

MySQL にテーブルがあり、2 つの非常に重要なフィールド STATUS と DATE があります。

STATUS フィールドの値は、"wait"、"ok"、"2edit"、または "no" のいずれかです。値を取得するには、"SELECT * FROM table ORDER BY FIELD(request_status, 'wait', '2edit', 「わかりました」、「いいえ」)」

ここまでは順調ですね。しかし、DATE 順であるためには、STATUS = "wait" の結果が必要です。出来ますか?

私はその考えに合格したことを願っています!

ありがとうございました。

4

4 に答える 4

1

もちろんこれは可能です=)

http://dev.mysql.com/doc/refman/5.0/en/order-by-optimization.htmlをご覧ください。

SELECT * FROM table ORDER BY FIELD(request_status, 'wait', '2edit', 'ok', 'no'), `DATE` ASC|DESC
于 2013-06-28T15:07:34.673 に答える
0

このようなものがうまくいくかもしれません。if ステートメントの 2 番目の部分は、日付であれば問題ありません。

select * from table 
ORDER BY FIELD(request_status, 'wait', '2edit', 'ok', 'no'),
if(request_status = 'wait', date, '2013-01-01') 

SQL フィドル

于 2013-06-28T15:11:58.460 に答える