kar*_*ila 15 mysql sql-order-by
是否可以使用预定的顺序执行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); 两者都以相同的顺序返回它们.
Con*_*oyP 36
我不认为这是可能的,但在这里找到了一个博客条目,似乎做了你想要的事情类型:
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
Run Code Online (Sandbox Code Playgroud)
会给出不同的结果
SELECT id FROM table WHERE id in (7,2,5,9,8)
ORDER BY FIND_IN_SET(id,"8,2,5,9,7");
Run Code Online (Sandbox Code Playgroud)
FIND_IN_SET返回id给定的第二个参数中的位置,因此对于上面的第一种情况,id7位于集合中的位置1,2位于2,依此类推 - mysql内部计算出类似的内容
id | FIND_IN_SET
---|-----------
7 | 1
2 | 2
5 | 3
Run Code Online (Sandbox Code Playgroud)
然后由结果命令FIND_IN_SET.
| 归档时间: |
|
| 查看次数: |
7930 次 |
| 最近记录: |