【发布时间】:2020-03-09 06:38:24
【问题描述】:
这是我的表格数据:
- file_number - status
- ABC099 - running
- ABC100 - running
- ABC101 - removed
- ...
- ABC1001 - removed
- ABC1002 - removed
- ABC1003 - running
- BCA099 - running
- BCA100 - removed
- BCA101 - running
- ...
- BCA1001 - removed
- BCA1002 - running
- BCA1003 - running
这个查询返回正确的答案,file_number 排序:
SELECT file_number,status FROM table ORDER BY LENGTH(file_number) asc
但我也想对状态列进行排序,即所有正在运行的文件应该放在第一位,删除的文件应该显示在最后。
预期结果:
- file_number - status
- ABC099 - running
- ABC100 - running
- ABC1003 - running
- ...
- BCA099 - running
- BCA101 - running
- ...
- BCA1002 - running
- BCA1003 - running
- ABC101 - removed
- ABC1001 - removed
- ABC1002 - removed
- BCA100 - removed
- BCA1001 - removed
【问题讨论】:
-
您的查询仅按长度排序
-
见
FIELD ()。 -
SELECT file_number,status FROM table ORDER BY LENGTH(file_number) asc, status desc.这也行不通
-
@Strawberry :你能解释一下吗
-
具体解释一下?
标签: mysql sql sql-order-by