[英]Auto-increment as a counter in SQL
我有一個包含3列(imageId,reportId,counter)的表,該表的主鍵是列(imageId,reportId),現在我希望計數器列將是我嘗試插入該對的次數的計數器(imageId,reportId)。
例如,如果我有圖像“ x.png”並且有100個人報告該圖像包含色情內容,我希望表格中具有值(“ x.png”,“色情”)的行的計數器為100柱。 當下一個人將該圖片報告為色情內容時,我希望計數器為101,依此類推。
我該怎么做?
謝謝
在這種情況下,最好將新行添加到表中。 這意味着您可以在其頂部提供一個視圖,可以根據需要選擇計數。
每個報表新行的好處是還可以允許用戶添加自定義消息等。
-更新
有關視圖的一些詳細信息,請參見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應該規范化
使用INSERT ... ON DUPLICATE KEY UPDATE
INSERT IGNORE INTO table (imageId, reportId, counter) VALUES (1, 1, 0) ON DUPLICATE KEY UPDATE SET counter=counter+1
您也可以將counter列的默認值設置為0並使用此值:
INSERT IGNORE INTO table (imageId, reportId) VALUES (1, 1) ON DUPLICATE KEY UPDATE SET counter=counter+1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.