如果存在,则增加行中的值,否则创建带值的行?

Jer*_*nin 6 mysql insert if-not-exists row

下面是我正在使用的 MySQL 表布局。基本上,我想增加浏览量、观察者和查询,因为它们通过网站的前端发生。我的问题是如何在第一次访问 ID: 1106 或 1107 时使用 MySQL 插入创建一个新的 _views 行?

ID 键值
----- ----- ------
1104 _reserve 10000
1104 _views 100
第 1104 章
1104 _inquiries 1
1105 _reserve 1500
1106 _reserve 24000
第 1106 章
1107 _reserve 45300

Rol*_*DBA 6

INSERT INTO mytable (ID,`key`,`value`) VALUES (1106,'_views',1)
ON DUPLICATE KEY UPDATE `value` = `value` + 1;
Run Code Online (Sandbox Code Playgroud)

INSERT INTO mytable (ID,`key`,`value`) VALUES (1107,'_views',1)
ON DUPLICATE KEY UPDATE `value` = `value` + 1;
Run Code Online (Sandbox Code Playgroud)

如果您的表已value定义为

CREATE TABLE mytable
(
   ...
   value INT DEFAULT 1,
   ...
);
Run Code Online (Sandbox Code Playgroud)

那么插入将是

INSERT INTO mytable (ID,`key`) VALUES (1106,'_views')
ON DUPLICATE KEY UPDATE `value` = `value` + 1;
Run Code Online (Sandbox Code Playgroud)

INSERT INTO mytable (ID,`key`) VALUES (1107,'_views')
ON DUPLICATE KEY UPDATE `value` = `value` + 1;
Run Code Online (Sandbox Code Playgroud)