MySQL查询语句IN条件值排序问题
发布时间:01/15 来源: 浏览:
关键词:
以前很是纠结一个问题就是IN查找出来的值怎么排序呢,后来gg,bb了一会发现其实mysql in排序很简单,下面我整理一下相关实例供大家参考。
假如你一个表如下所示:
id | name |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
我们一般查询多条数据的时候,条件一般是某个区间
如:>, <, between and, IN
代码如下 | |
SELECT * FROM table_name WHERE id IN (2,1,3); |
上面这条SQL是查询id是2,1,3的数据
假如你只是想查询出来数据而已,则没有什么问题
但你想排序方面也有要求的话,你会发觉,那条SQL查出来的数据是这样的
id | name |
---|---|
1 | 张三 |
2 | 李四 |
3 | 王五 |
就是说,并没有按2, 1, 3这样的ID顺序来排
假如你要按你IN里面的顺序来排的话,SQL应该改成这样:
代码如下 | |
SELECT * FROM table_name WHERE id IN ( 2,1,3 ) ORDER BY FIND_IN_SET( id, '2,1,3' ) |
结果是:
id | name |
---|---|
2 | 李四 |
1 | 张三 |
3 | 王五 |
这个用法可以延伸很多…