2013-07-10 20 views
0

我想在一個表結構像 ID,mls_id,地址,AGENT_ID執行搜索。我想這樣做的是把所有的記錄AGENT_ID但拉不超過一個,如果有相同毫升。例如:如何做搜索的MySQL剔除重複的記錄

Select * From table WHERE agent_ID = 1234 

可能會拉起5條記錄,但讓我們假設兩條記錄的mls_id是相同的。有沒有辦法只取其中一個,並保持所有其他結果的機智?

回答

1

這似乎這樣的伎倆:

它做什麼是選擇那些具有相同mls_id

SELECT id, mls_id, address, agent_id 
FROM MyTable t1 
WHERE t1.agent_id=1 AND t1.id = 
    (SELECT Min(t2.id) 
    FROM MyTable t2 
    WHERE agent_id=1 AND t2.mls_id=t1.mls_id 
    GROUP BY t2.mls_id) 

這裏用最少的ID的記錄是小提琴例如:SqlFiddle

+0

哇 - 工程。遠比我之前創建的更復雜的mysql語句。謝謝! –

0
SELECT DISTINCT * 
FROM table 
WHERE agent_ID = 1234 

使用DISTINCT關鍵字會從你的結果集落重複記錄。

+0

這給了我同樣的結果。我仍然得到三個具有相同mls_id字段的記錄。如果我只是做 SELECT DISTINCT mls_id FROM表WHERE AGENT_ID = 1234,這將使我不同的結果,但我再沒有得到額外的領域需要 - 如地址,城市,ST等 –

+0

'SELECT DISTINCT *從table'是與SELECT * From table'完全相同,因爲所有行在標準表中都是唯一的。 –