抱歉这个糟糕的标题 - 不知道怎么说。
我有一个评论数据库,任何人都可以报告滥用评论(任何人都不会登录成员)。这显然意味着一个人可以多次报告评论。我需要帮助的地方是建立一个查询,显示报告评论的次数,但是通过唯一的电子邮件地址和IP地址。
我不确定这是否清楚 - 如果IP地址1.2.3.4的joe@joe.com多次报告一条消息,它将只计为一个报告。如果有另外的记录为joe@joe.com且IP为4.5.6.7且报告相同的评论,则由于IP不同,它将被视为两份报告。
字段,全部在一个表中:
我希望一切都有意义,任何帮助都会非常感激!
答案 0 :(得分:2)
SELECT email, ip_address, COUNT(DISTINCT note)
FROM log
GROUP BY
email, ip_address
<强>更新强>
根据你的评论,我相信你想要这个:
SELECT comment_id, COUNT(DISTINCT email, ip_address)
FROM log
GROUP BY
comment_id
答案 1 :(得分:1)
SELECT
comment_id,
COUNT(DISTINCT CONCAT(email,'|',ip_address))
FROM log
GROUP BY comment_id
正如OMG小马所说,添加一个独特的电子邮件+ ip_address会有所帮助,可能有助于防止丢失的笔记:
INSERT INTO log (...) VALUES (...) ON DUPLICATE KEY note = CONCAT(note,' ',VALUES(note));