我有一个mySql数据库,并且有一个有趣的问题...
我需要按一个字段排序查询结果,该字段的条目为1,2,3或4,有序递减但最后为4。
所以我希望按以下顺序得到结果
3点的 2点的 1点的 4的
这是否可行
我知道我可以在php中对结果数组进行排序,但不幸的是我需要在sql语句中执行此操作。
提前致谢
.K
答案 0 :(得分:8)
如果字段是int
,
ORDER BY (fieldname = 4) DESC, fieldname DESC
应该这样做。
答案 1 :(得分:2)
这是另一种很酷的方式
ORDER BY MOD(fieldname,4) DESC,fieldname
如果结果是CHAR(1)则
ORDER BY LOCATE(fieldname,'3214'),fieldname
答案 2 :(得分:1)
将此添加到订单
ORDER BY
CASE field_name WHEN 4 THEN 1
ELSE 2
END
这将使用字段
的值返回查询顺序的结果