我有这样的疑问,
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 = 548
是true
时,它返回1
否则返回0
这就是我们使用DESC
的原因。