有重的不明白.
你不加distinct不就可以了.
如果是单一的你就加where username=aaa 也可以呀

解决方案 »

  1.   

    就是只得到那些fieldname的值出现次数>1的所有记录。
      

  2.   

    不会,用group by可以找出所有的不相同的
      

  3.   

    select a.* from tablename a inner join tablename b 
    on a.id<>b.id and a.filedname=b.filedname必须要通过PK或者unique的不等来防止纪录和其自己比较filedname,比如on a.id<>b.id
      

  4.   

    有点不太明白,b是那里来的?里面的id怎么得到的?
      

  5.   

    这叫做表的自联接。a,b都是tablename这个表的别名,为了简化语句取的。id是表的主键或者唯一键,必须有主键或者唯一键才能采用我上面的方法。不过我想大多数表都应该有主键或者唯一键的
      

  6.   

    如果mysql下一个版本支持子查询,则会有更明了的方法:
    SELECT * FROM tablename A
    WHERE EXISTS (
    SELECT * FROM tablename 
    WHERE filedname=A.filedname
    AND ID<>A.ID

      

  7.   

    没有PK或者UK就不能用我的方法了。你加上一个自动增长的id吧,这个很重要
      

  8.   

    如果有id的话,用
    select * from tablename where id not in (select distinct fieldname,id from tablename)
    就可以了吧?
      

  9.   

    你的那种方法当然不行,mysql还不支持子查询就是支持,你的方法也是错的
      

  10.   

    用两条语句吧。
    select filedname from tablename group by filedname having count(filedname)>1取出所有的$filedname以后再组合成('var1','var2','var3')的形式,然后用语句:
    select * from tablename where filedname in ('var1','var2','var3')
      

  11.   

    其实我指的就是mssql,目的是想在查询分析器里找出fieldname有重复的记录。
      

  12.   

    select filedname from tablename group by filedname having count(filedname)>1
    这个就是我想要的答案。
    多谢
    结贴
      

  13.   

    但这并不是你的帖子的意思i 服了 you
      

  14.   

    不会吧?我就是这个意思啊!
    select * from tablename where fieldname in (select filedname from tablename group by filedname having count(filedname)>1)
      

  15.   

    你的帖子的意思是要得到filedname的值有重复的那些记录select filedname from tablename group by filedname having count(filedname)>1
    只是将filedname有重复的filedname取出来,这里第一不是纪录,第二取出来的filedname都是唯一值。
    不过倒是可以通过这个语句达到你帖子的意思,就是我上面说的用两个语句来实现你的目的
    不知你懂了没有,hehe