看看这个简单的查询
SELECT id FROM users
现在,假设我希望用户id
订购4,5,7,8,那么我不关心中间,最后我想要最后一个那些是55,56,58。
因此返回的行将是这样的(\ n新行)
4 // explicitly chose these as the start rows
5 // " "
7 // " "
8 // " "
44 // these just come in any order (order not important)
23 // " "
10 // " "
55 // explicitly chose these as the end rows
56 // " "
58 // " "
如何修改上面的查询来执行此操作?感谢
答案 0 :(得分:1)
使用:
SELECT u.id
FROM USERS u
ORDER BY CASE id
WHEN 4 THEN 1
WHEN 5 THEN 2
WHEN 7 THEN 3
WHEN 8 THEN 4
WHEN 55 THEN 100000
WHEN 56 THEN 100001
WHEN 58 THEN 100002
ELSE id
END ASC
将值设置在实际值之外,以便在最后按顺序获得55/56/58。
答案 1 :(得分:0)
最好在表格中引入订单字段,而不是使用黑客或硬编码的任何内容。