我有这样的疑问,

select * from my_table where `status`='1' ORDER BY FIELD(city_id,548) ASC;

我的目的是显示表中的所有记录,但应首先显示city_id=548的记录。
目前它显示所有记录,但没有期望的排序!有什么想法吗?

最佳答案

实际上它正在工作,但您需要将其更改为DESC,因为FIELD()返回参数中值的index
除了可以接受多个参数的FIELD()之外,如果只有一个条件,也可以使用=

ORDER BY (city_id = 548) DESC

city_id = 548true时,它返回1否则返回0这就是我们使用DESC的原因。

09-13 08:43