我想做这样的事情(更新的值应该与插入的值不同):
"INSERT INTO notification_chat_counts (uid,group_id,count)
VALUES
(",$uid,",",$groupId,",1)
ON DUPLICATE KEY UPDATE
(count = count +1)"
答案 0 :(得分:1)
当然有可能。甚至MySQL manual都有插入不同值的示例,即更新的值:
INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1;
对于您的示例,正确的查询语法为:
$query = "INSERT INTO notification_chat_counts (uid,group_id,count)
VALUES (",$uid,",",$groupId,",1)
ON DUPLICATE KEY UPDATE count=count+1"
但是,要使此语句起作用,必须为此表定义UNIQUE
类型索引,以便MySQL可以决定表中是否已存在此行。
还要记住,在这样的SQL查询中插入值是危险的,不推荐使用。你应该使用准备好的陈述。