我看到了有关如何在尝试重复插入时增加列值的问题:
insert into table (col) values (val) on duplicate update countcol=countcol+1;
但是如何将 countcol 增加一个变量值呢?
例如:
insert into table (col, count) values (val1, val2) on duplicate update count=count+val2?
假设我正在跟踪学生阅读的书籍数量,并且我的表格包含:
Mark | 5
Mark 报告说我又读了 2 本书,所以我想要:
标记| 7
(在现有总数中添加 2)
但是我想处理 Jerry(程序新手)读了 2 本书的情况
插入--> 杰瑞 | 2
也许类似;
insert into readers (student, count)values ('Mark',3 as read)
on duplicate key update count=count+read;
我可以访问 mySQL 中提交的值的实际名称/引用吗?这可以在一条语句中完成吗?或者我是否需要先测试记录是否存在,然后根据结果插入/更新?
最佳答案
使用values()
:
insert into table (col, count)
values (val1, val2)
on duplicate update count = count + values(count);
values()
指的是传递到 insert
中的值。
关于MySQL:如何将重复键上的字段更新为 1 以外的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46877272/