sql记录查询重复注意事项(经验提升),in的用法和效率

sql查询重复记录,使用:

select * from dimappnamenew as appn
where id
in
(
  select id
  from dimappnamenew group by packagename,storename,app_name having count(*)>1

id是表的主键,三个属性映射后可以唯一对应id这个列,所以用id就行了。

在做其他查询时,认真分析表内容,如果查询多个字段可以唯一对应一个字段,直接用这个字段作为外部对比,会加快效率。是指等号时候。

注意,in在sql里定义的使用规则是,in(value1,value2,value3,。。。。。。),即,in 后比较的是具体的各种取值。

在 in(select 子句)中,select子句 只能返回一个属性 :select 后只能跟表里的一个属性,返回这个属性的不同取值,才能用in做比较。

in的执行效率很差。因为无法用上表的索引。如果用子查询,可以用exist的效率更好。

原文地址:https://www.cnblogs.com/cl1024cl/p/6205527.html