当前位置:  开发笔记 > 后端 > 正文

以预定义的顺序返回查询结果

如何解决《以预定义的顺序返回查询结果》经验,为你挑选了1个好方法。

是否可以使用预定的顺序执行SELECT语句,即.选择ID 7,2,5,9和8 并按顺序返回它们,仅基于ID字段?

语句SELECT id FROM表WHERE id in(7,2,5,9,8); 和SELECT id FROM表WHERE id in(8,2,5,9,7); 两者都以相同的顺序返回它们.



1> ConroyP..:

我不认为这是可能的,但在这里找到了一个博客条目,似乎做了你想要的事情类型:

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返回id给定的第二个参数中的位置,因此对于上面的第一种情况,id7位于集合中的位置1,2位于2,依此类推 - mysql内部计算出类似的内容

id | FIND_IN_SET
---|-----------
7  | 1
2  | 2
5  | 3

然后由结果命令FIND_IN_SET.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有