Users Table:
ID|Name|Deleted
1 | | N
2 | b | Y
3 | c | N
4 | d | N
删除的默认值为"N"
我想按 id desc 排序,但我想最后显示已删除的用户。
即何时删除的"Y"应该最后出现
您可以在 order by
中使用多个键。 所以:
order by (deleted = 'Y') asc, id desc
表达式 (deleted = 'Y')
是一个布尔表达式,MySQL 将其视为一个数字,其中 1 表示真,0 表示假。 asc
将真实值放在最后。
在大多数其他数据库中,您可以使用case
执行此操作:
order by (case when deleted = 'Y' then 1 else 2 end) desc, id desc
这将是简单的解决方案
select * from table_name ORDER BY deleted ASC, id DESC