查詢數據庫中字段內容相同的記錄


  昨天遇到了一個問題,查詢用戶表中所有用戶名相同的記錄。這個問題乍看很簡單,但是細想起來沒那么容易。頭腦的第一反應就是讀取一個條數據之后循環查找有沒有相同的。。汗!!!這種方法肯定不行,這效率太低了。。。

  后來想到的方法是將用戶表內聯查找,如:

select u1.* from M_User u1,M_User u2 where u1.Name = u2.Name and u1.rowid <> u2.rowid

  這樣發現解決問題,很開心的繼續做其他的事兒了。。。

  

  但是當整個模塊快做完了的時候測試了下,突然發現,當用戶名相同的記錄多余兩個的時候會出現問題,每條記錄會被查詢出兩次。比如id為1、2、3條記錄的Name都是user1,那么1和3、2和3、1和2會被查詢出來,也就是每條記錄被查出來兩次。這樣是不行的,所以又回頭想sql語句。

 

  最后經過經理的指點,可以使用group by 來做。

select 
    * 
from 
    M_USER 
where 
    Name
in
    (select 
        Name ss 
    from 
        M_USER 
    where
        IsDeleted=0
    group by 
        Name having count(*)> 1 
    )


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM