mysql排序异常

mysql排序异常,mysql,sql-order-by,Mysql,Sql Order By,我有一个MySQL数据库和一个有趣的问题 我需要按照一个字段对查询结果进行排序,该字段的条目为1、2、3或4,按降序排列,但末尾为4 因此,我希望得到以下顺序的结果 3的 2的 1的 4的 这可能吗 我知道我可以在php中对结果数组进行排序,但不幸的是,我需要在sql语句中进行排序。如果字段是int ORDER BY (fieldname = 4) DESC, fieldname DESC 应该可以做到这一点。这里有另一个很酷的方法 ORDER BY MOD(fieldname,4) DESC

我有一个MySQL数据库和一个有趣的问题

我需要按照一个字段对查询结果进行排序,该字段的条目为1、2、3或4,按降序排列,但末尾为4

因此,我希望得到以下顺序的结果

3的 2的 1的 4的

这可能吗


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

如果字段是
int

ORDER BY (fieldname = 4) DESC, fieldname DESC

应该可以做到这一点。

这里有另一个很酷的方法

ORDER BY MOD(fieldname,4) DESC,fieldname
如果结果是字符(1),则

将此添加到订单中


订购人
案例字段\u名称,当为4时为1
其他2
结束


这将使用字段的值返回查询顺序的结果

Hey Pekka,谢谢,(fieldname=3)完成了这项工作,你能编辑你的帖子吗?我试过了,但没有,非常感谢。k@Keet谢谢,我确实搞错了。现在应该是正确的了!
ORDER BY LOCATE(fieldname,'3214'),fieldname