mysql in查询怎样排序问题

mysql in查询怎样排序问题,第1张

以前很是纠结一个问题就是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顺序来排

select * from `main` where `type` in

((select `id` from `A`) and (`select `num` from `B`))

可以着这样写:

select * from `main` where `type` in

((select `id` from `A`) and 'type' in (`select `num` from `B`))

and 连接的是两个条件。

SELECT b.id FROM t_address a, t_unit b WHERE b.utj=1 AND b.ufreeze=2 AND a.id=b.uads and a.sid=3

就这个啦!!

原因很简单

b.utj=1不满足的话,那么系统就直接找下一个数据

用的in的话,如果第一个不满足,那么就匹配第二个,第二个不满足,在匹配第三个

,全部不匹配 才找下一条数据!!

这个就可以看到了,可能用IN的话,效率可能会减慢3倍,打个比方


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7398985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存