2014-01-24 23 views
1

我提前道歉數據,我甚至不真的知道如何正確單詞這個問題,所以我就描述的情景:查詢MySQL的出現不止一次,但前提是另一場不同

我有一個數據庫,其中包含多個數據段,比如說有「PHONE」,「ADDRESS」和「NAME」兩列。

我希望能夠運行一個查詢,查找出現不止一次(重複)的「NAME」實例,但只有當「PHONE」和「ADDRESS」字段不匹配時。

如果NAME條目是另一行的副本,並且PHONE或(!)ADDRESS也匹配,我不感興趣。

謝謝你的時間!

回答

1

您正在尋找有不同的電話或地址名稱:

select name 
from table t 
group by name 
having min(phone) <> max(phone) or 
     min(address) <> max(address); 

如果你想要求這兩個是不同的,那麼使用的and代替or

+0

非常感謝,這工作出色。 – Pacman

0

你可能想做一個自我JOIN,然後檢查這些條件,具體取決於你想要的OR也可能是AND,試試看看。

SELECT T1.NAME,T1.PHONE,T1.ADDRESS,T2.NAME as NAME2,T2.PHONE as PHONE2,T2.ADDRESS as ADDRESS2 
FROM yourTable T1 INNER JOIN yourTable T2 ON T1.NAME = T2.NAME AND (T1.PHONE > T2.PHONE OR T1.ADDRESS > T2.ADDRESS)