SQL 使用IN()操作符SQL语句时遇见的坑

SQL 使用IN()操作符SQL语句时遇见的坑

问题描述:
一次偶然发现,一样的代码,发现IN() 括号里的内容数据只有一行的时候,查询非常慢。
IN()语句括号里只有一行数据时查询效果如下:
在这里插入图片描述
优化后:
IN()语句括号里有多行数据查询效果如下:
在这里插入图片描述
经对比,IN语句括号里只有一行数据的和多行数据相比,查询速度是0.313s 和80.662s。显然查询速度相差80多秒,前端查询起来让人烦恼。

解决方法:
为了优化这个问题,注意不能让IN()括号语句里的数据为一行。
至此,排除故障。查询时间为0.2~0.4s非常顺畅,体验效果佳。
PS:以下是IN的正确语法,IN (value1,value2,…)注意value值不能为单一,否则在做多表查询时会出现效率慢的问题。

IN 操作符

允许我们在 WHERE 子句中规定多个值。

SQL IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值