我有一个包含3列的表格(imageId,reportId,counter) 表的主键是列(imageId,reportId) 现在我想计数器列将是我尝试插入对的次数的计数器(imageId,reportId)。
例如,如果我有图像“x.png”并且有100人报告此图片包含色情内容, 我希望表中具有值(“x.png”,“色情”)的行在计数器列中将有100。 当下一个人将此图像报告为色情内容时,我希望计数器为101,依此类推。
我该怎么做?
谢谢
答案 0 :(得分:2)
在这种情况下,最好向表中添加新行。这意味着您可以在其顶部提供一个视图,可以根据需要选择计数。
每个报告新行的好处是还允许用户添加自定义消息等。
- 更新
此处的一些详细信息http://dev.mysql.com/doc/refman/5.0/en/view-syntax.html
它的核心是你的查询只是一个基本的查询,如
SELECT imageId, reportId, count(reportId) as count FROM training.reporttable group by imageId, reportId
这是一个基本的例子:
注意,我坚持使用您的示例数据,但reportId和imageId应该正常化
答案 1 :(得分:2)
使用INSERT ... ON DUPLICATE KEY UPDATE
INSERT IGNORE INTO table (imageId, reportId, counter) VALUES (1, 1, 0) ON DUPLICATE KEY UPDATE SET counter=counter+1
您还可以将计数器列的默认值设置为0并使用:
INSERT IGNORE INTO table (imageId, reportId) VALUES (1, 1) ON DUPLICATE KEY UPDATE SET counter=counter+1