【问题标题】:How to increment the number of INSERT IGNORE into a UNIQUE column?如何将 INSERT IGNORE 的数量增加到 UNIQUE 列?
【发布时间】:2012-01-20 05:47:10
【问题描述】:

我有一个简单的单词列表表,因为单词列是UNIQUE。因此,我INSERT的话与

INSERT IGNORE INTO words (word) VALUES ('word1'), ('word2'), ...

我想添加一个新列“出现次数”来计算INSERTs(即IGNOREd)的数量。当INSERT忽略单词是否存在时,我想增加“出现次数”的值(+1)。

编辑:我正在寻找一种通用方法;例如使用 word_map 作为

INSER IGNORE INTO word_map (word_id, post_id) 
VALUES ('word_id1', 'post_id1'), ('word_id2', 'post_id2')...

【问题讨论】:

    标签: mysql sql insert duplicates unique


    【解决方案1】:
    INSERT INTO words
      (myword, cnt)
    VALUES ('example', 1)
    ON DUPLICATE KEY UPDATE
        cnt = cnt + 1;
    

    请参阅INSERT ... ON DUPLICATE KEY UPDATE 上的文档。

    【讨论】:

    • 但此方法不适用于将多个值插入为INSERT IGNORE INTO words (word) VALUES ('key1'),('key2), ...
    • @Ali,你能显示失败的插入语句和错误文本吗?
    • 对不起,这是我的错误。它完美地工作!再次感谢您的打扰!
    猜你喜欢
    • 2015-03-08
    • 1970-01-01
    • 2012-08-25
    • 2012-05-06
    • 1970-01-01
    • 2017-02-14
    • 2014-01-30
    • 2015-10-22
    • 1970-01-01
    相关资源
    最近更新 更多