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,...)