我正在尝试确定数据库中的最后15个条目是否重复。有没有一种简单的方法可以用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 :(得分:3)
您可以先尝试使用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
然后,对于此查询返回的每个内容,您将要执行某些操作(如果您尝试删除某些条目,请确保不删除所有条目,并保留第一个或最后一个)
答案 1 :(得分:0)
您可以看到重复的数量,如下所示:
select content, count(content)
from `messages`
WHERE sender_id = 12345
group by content
order by count(content) desc
答案 2 :(得分:0)
如果count大于1那么重复。
SELECT count(content) FROM `messages` WHERE sender_id = 12345 group by content order by date desc limit 10