嗨,有没有一种方法可以按sql结果的优先级排序?
示例我有一个$_POST['city_id']
请求,其值为2
,5
,而我的表中有city_id
行,1
,{ {1}},2
,3
,4
当我使用以下示例查询时:
5
我可以按SELECT * FROM table_name WHERE status = 0 ORDER BY city_id ASC
的顺序获得2
,5
,1
,3
,4
的结果。
答案 0 :(得分:3)
您可以根据值是否在数组中(使用IN
表达式)然后通过city_id
进行排序:
SELECT *
FROM table_name
WHERE status = 0
ORDER BY city_id IN (2, 5) DESC, city_id ASC
答案 1 :(得分:0)
您可以使用`ORDER BY FIELD``
SELECT * FROM table_name WHERE status = 0 ORDER BY FIELD(city_id, 5,2) DESC, city_id ASC
请注意,如果所选项目的顺序很重要,则必须在FIELD
函数中使用相反的顺序。