我提前道歉數據,我甚至不真的知道如何正確單詞這個問題,所以我就描述的情景:查詢MySQL的出現不止一次,但前提是另一場不同
我有一個數據庫,其中包含多個數據段,比如說有「PHONE」,「ADDRESS」和「NAME」兩列。
我希望能夠運行一個查詢,查找出現不止一次(重複)的「NAME」實例,但只有當「PHONE」和「ADDRESS」字段不匹配時。
如果NAME條目是另一行的副本,並且PHONE或(!)ADDRESS也匹配,我不感興趣。
謝謝你的時間!
我提前道歉數據,我甚至不真的知道如何正確單詞這個問題,所以我就描述的情景:查詢MySQL的出現不止一次,但前提是另一場不同
我有一個數據庫,其中包含多個數據段,比如說有「PHONE」,「ADDRESS」和「NAME」兩列。
我希望能夠運行一個查詢,查找出現不止一次(重複)的「NAME」實例,但只有當「PHONE」和「ADDRESS」字段不匹配時。
如果NAME條目是另一行的副本,並且PHONE或(!)ADDRESS也匹配,我不感興趣。
謝謝你的時間!
您正在尋找有不同的電話或地址名稱:
select name
from table t
group by name
having min(phone) <> max(phone) or
min(address) <> max(address);
如果你想要求這兩個是不同的,那麼使用的and
代替or
。
你可能想做一個自我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)
非常感謝,這工作出色。 – Pacman