是否可以使用预定的顺序执行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); 两者都以相同的顺序返回它们.
我不认为这是可能的,但在这里找到了一个博客条目,似乎做了你想要的事情类型:
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
给定的第二个参数中的位置,因此对于上面的第一种情况,id
7位于集合中的位置1,2位于2,依此类推 - mysql内部计算出类似的内容
id | FIND_IN_SET ---|----------- 7 | 1 2 | 2 5 | 3
然后由结果命令FIND_IN_SET
.