0

2列のテーブルがあります

id  status

1   SUBMIT
2   CANCEL
3   UPDATE
4   CANCEL
5   SUBMIT
6   UPDATE

私が行った場合:

select * from table

MySQLを使用して希望する順序で結果を並べ替えることはできますか?
ASCはCANCEL、SUBMIT、UPDATEになり、DESCはその逆になります。SUBMIT、CANCEL、UPDATEなどの別の注文が必要な場合はどうなりますか?出来ますか?

4

3 に答える 3

2

私が正しく理解していれば、これはあなたが必要とするものです:

SELECT * FROM `Table` ORDER BY FIELD(status, 'SUBMIT', 'CANCEL', 'UPDATE');

需要に応じて、列の値の順序を変更できます。

テストは次のとおりです: http ://sqlfiddle.com/#!2 / d1885 / 3

于 2012-12-04T13:14:50.937 に答える
0

あなたの場合::

Select status from table group by status

必要な結果が得られます

于 2012-12-04T13:12:29.267 に答える
0

mysqlカスタムソート順を検索すると、多くの例が見つかります。それらの1つはorder by case

select *
from mytable
order by case status when 'SUBMIT' then 1
                     when 'CANCEL' then 2
                     when 'UPDATE' then 3
         end

SQLフィドル

于 2012-12-04T13:18:09.657 に答える