mysql排序异常

时间:2011-04-13 14:06:56

标签: mysql mysqli

我有一个mySql数据库,并且有一个有趣的问题...

我需要按一个字段排序查询结果,该字段的条目为1,2,3或4,有序递减但最后为4。

所以我希望按以下顺序得到结果

3点的 2点的 1点的 4的

这是否可行

我知道我可以在php中对结果数组进行排序,但不幸的是我需要在sql语句中执行此操作。

提前致谢

.K

3 个答案:

答案 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

这将使用字段

的值返回查询顺序的结果