如何解决以预定义的顺序返回查询结果
我不认为这是可能的,但是在这里找到了一个博客条目,似乎可以满足您的需求:
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
将给不同的结果
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
[FIND_IN_SET](http://dev.MysqL.com/doc/refman/5.0/en/string-
functions.html#function_find-in-
set)
返回id
给定第二个参数的位置,因此对于上面的第一种情况,id
7的位置在集合中的位置1,2的位置在2,依此类推-MysqL在内部得出类似
id | FIND_IN_SET
---|-----------
7 | 1
2 | 2
5 | 3
然后按的结果排序FIND_IN_SET
。
解决方法
是否可以以SELECT
预定顺序进行声明,即 选择ID 7,2,5,9和8 并以该顺序返回它们 ,仅基于ID字段?
这两个语句以相同顺序返回它们:
SELECT id FROM table WHERE id in (7,9,8)
SELECT id FROM table WHERE id in (8,7)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。