2012-02-11 72 views
0

我試圖確定我的數據庫中的最後15個條目是否重複。有沒有簡單的方法來做到這一點與MySQL或我需要迭代通過每個結果,並將其與前一個比較如何?我如何確定重複項與MySQL

我的SQL查詢看起來是這樣的:

SELECT content FROM `messages` WHERE sender_id = 12345 order by date desc limit 10 

在這種情況下,結果是這樣的:

test1 
test1 
test2 
test1 
test1 
test1 
test1 
test2 
test1 
test1 

我希望看到80%,在這種情況下是相同的。

任何想法或建議如何使用SQL和PHP輕鬆實現?

+0

您的整體意圖是什麼?你想剝離傻瓜,阻止它們,數它們嗎? – mrlee 2012-02-11 15:06:21

+0

我的意圖是標記用戶輸入90%重複的內容。 – Paul 2012-02-11 15:18:40

回答

3

你可以先嚐試couting的每個條目多少次出現,使用count()goup by條款:

select content, count(content) 
from messages 
WHERE sender_id = 12345 
    -- maybe add a condition on the date, here 
group by content 
having count(content) > 1 

然後,由該查詢返回的每一個內容,你會想做點什麼(如果您嘗試刪除一些條目,請務必不要刪除所有條目,並保留第一條或最後一條)

+0

謝謝,這很好! – Paul 2012-02-11 15:35:30

+0

很高興我能幫忙;玩的開心 ! – 2012-02-11 15:42:30

0

你可以看到重複的這樣的數字:

select content, count(content) 
from `messages` 
WHERE sender_id = 12345 
group by content 
order by count(content) desc 
0

如果計數大於1個的重複。

SELECT count(content) FROM `messages` WHERE sender_id = 12345 group by content order by date desc limit 10