简体   繁体   English

从按列值排序的表中获取记录

[英]fetch records from table ordered by column value

I have a table with a column to maintain the state of the record. 我有一个带有列的表来维护记录的状态。 ie

-----------------------------
| id  | desc      | state    |
-----------------------------
| 1   | desc 1    | Complete |
| 2   | desc 2    | Open     |
| ... | ...       | ...      |
-----------------------------

I want fetch the records in the order of 'Open' followed by 'Complete'. 我想按“打开”后跟“完成”的顺序获取记录。 Can I get this done using one SQL query? 我可以使用一个SQL查询完成此操作吗? If so, how should I write it? 如果是这样,我应该怎么写?

是的,您可以使用ORDER BY语句和FIELD函数来执行此操作:

SELECT * FROM table1 ORDER BY FIELD(state, 'Open', 'Complete')

Try something like this: 尝试这样的事情:

select * 
from table_name 
order by decode (state, 'Open', 1, 'Complete', 2, 3)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM