Mysql的select in会自动过滤重复的数据

x33g5p2x  于2021-12-28 转载在 Mysql  
字(0.6k)|赞(0)|评价(0)|浏览(335)

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)
自己在外边先把重复的挑出来

相关文章

微信公众号

最新文章

更多