按字段排序不起作用,但没有错误

时间:2015-04-21 06:32:17

标签: php mysql

我有这样的查询,

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

我的目的是显示表格中的所有记录,但city_id=548的记录应首先显示。

目前显示所有记录但没有所需的排序!有什么想法吗?

2 个答案:

答案 0 :(得分:2)

实际上它正在运行,但您需要将其更改为DESC,因为FIELD()会返回参数值的index

除了接受多个参数的FIELD()之外,如果您只有一个条件,也可以使用=

ORDER BY (city_id = 548) DESC

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

答案 1 :(得分:1)

试试这个

sql中的降序用DESC关键字表示我认为其他值小于548,这就是为什么它不能按预期工作

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