MySQL订单不使用ASC或DESC
答
我认为最简单的方法是做这样的:
SELECT * FROM `mytable` ORDER BY FIND_IN_SET(id, '2,3,1')
答
您可以添加与值的虚拟列将
MOD(ID, 3)
,并通过其订购您的查询上升。例如:
SELECT somecolumn, MOD(ID, 3) AS ordered_id FROM my_table ORDER BY ordered_id
答
未经测试:
SELECT ..., IF(ID=2, 1, IF(ID=3, 2, 3)) AS orderByValue
FROM ...
ORDER BY orderByValue
它使用IF function转换ID值:
ID orderByValue
2 1
3 2
else 3
这正是我正在寻找的。谢谢! – 2010-05-09 20:21:46
+1,非常优雅! – Heinzi 2010-05-10 15:10:39