我有这样的查询,
select * from my_table where `status`='1' ORDER BY FIELD(city_id,548) ASC;
我的目的是显示表格中的所有记录,但city_id=548
的记录应首先显示。
目前显示所有记录但没有所需的排序!有什么想法吗?
答案 0 :(得分:2)
实际上它正在运行,但您需要将其更改为DESC
,因为FIELD()
会返回参数值的index
。
除了接受多个参数的FIELD()
之外,如果您只有一个条件,也可以使用=
。
ORDER BY (city_id = 548) DESC
当city_id = 548
为true
时,会返回1
,否则为0
,这就是我们使用DESC
的原因。
答案 1 :(得分:1)
试试这个
sql中的降序用DESC
关键字表示我认为其他值小于548,这就是为什么它不能按预期工作
select * from my_table where `status`='1' ORDER BY FIELD(city_id,548) DESC;