有没有办法添加条件,如"如果不是重复键"?
MySql_Connection.query("
INSERT INTO `my_database`.my_table (`word`) VALUES ("word_to_insert")
ON DUPLICATE KEY UPDATE `hits` = `hits` + 1
// ON **NOT** DUPLICATE KEY UPDATE `hits` = `hits` + 2;
");
以下对我的案例来说不是一个好的解决方案
MySql_Connection.query("
INSERT INTO `my_database`.my_table (`word`) VALUES ("word_to_insert")
UPDATE `hits` = `hits` + 2
ON DUPLICATE KEY UPDATE `hits` = `hits` + 1;
");
因为它默认会增加2
答案 0 :(得分:2)
如果重复则尝试减少它以避免它:
INSERT INTO `my_database`.my_table (`word`) VALUES ("word_to_insert")
UPDATE `hits` = `hits` + 2
ON DUPLICATE KEY UPDATE `hits` = `hits` - 1;
如果没有重复:+2
如果重复+2-1 = +1
答案 1 :(得分:2)
我猜这个词是主键。
如果你这样做,你会在添加一个单词时获得2次点击,否则为点击添加1次:
INSERT INTO mytable(word, hits) VALUES('word_to_insert', 2)
ON DUPLICATE KEY UPDATE hits=hits+1