Mysql的select in会自动过滤重复的数据
默认使用 SELECT 语句;
当加上in范围后,结果如下图:
in范围内的数据,如果有重复的,只会选择第一个数据。
所以如果不是直接使用SQL语句来查询,而是在代码中来查询时,记得使用 distinct 关键字
Mysql中IN条件有重复性能有影响吗?一定会,所以一定要去重
如:(模仿代码查询情况,代码查询之后还有IN查询,记得要去重)
select id, name from table1 where ref_id in (select id from table2
)
其实是相当于:
select id, name from table1 where ref_id in (select distinct id from table2
)
因为table2中的id可能会存在重复的情况。
IN中为空,报错,id IN(),本来查到的就是空,这条sql没有意义,mysql不会允许这么查,浪费性能。
mysql,in中重复的记录也查出的方法
如题,举例说明下,假如where in (1,2,3,2,5,3);其中2,3都有重复的,想要让查出的记录数量和in中的相同,重复的也会显示重复的记录,就是得出的记录是6条。
in有重复没办法,我能知道的就是
select * from xxx where in (1,2,3,5)
union all
select * from xxx where in (2,3)
自己在外边先把重复的挑出来