簡體   English   中英

自動增量作為SQL中的計數器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM