MySQL查询使用'AND'子句将值设置为0

MySQL查询使用'AND'子句将值设置为0,mysql,sql,Mysql,Sql,我有一个MySQL查询,它以1为增量更新两列,如果它们不存在,则创建它们 我当前的表有四列:id、用户名、播放时间和死亡时间 目前,我使用的查询是: INSERT INTO `playTime` (`username`, `playtime`, `deathtime`) VALUES ('Rogue', 1, 1) ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1 AND `deathtime`=`deathtime`+1 用户名在应用程序

我有一个MySQL查询,它以1为增量更新两列,如果它们不存在,则创建它们

我当前的表有四列:id、用户名、播放时间和死亡时间

目前,我使用的查询是:

INSERT INTO `playTime` (`username`, `playtime`, `deathtime`)
VALUES ('Rogue', 1, 1)
ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1
    AND `deathtime`=`deathtime`+1
用户名在应用程序中是动态的,但为示例提供了一个用户名

但是,我的问题是,在重复键上,它不会增加值,而是将两个值都设置为0。通过多次调整查询的测试,我发现是AND子句导致查询重置值。例如,此查询将正确增加playtime列:

INSERT INTO `playTime` (`username`, `playtime`, `deathtime`)
VALUES ('Rogue', 1, 1)
ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1

如果你把playtime和deathtime交换,那么它会正确地增加另一列。为什么会这样?

试试这个。。逗号,而不是AND

INSERT INTO `playTime` (`username`, `playtime`, `deathtime`)
VALUES ('Rogue', 1, 1)
ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1 ,
     `deathtime`=`deathtime`+1

试试这个。。逗号,而不是AND

INSERT INTO `playTime` (`username`, `playtime`, `deathtime`)
VALUES ('Rogue', 1, 1)
ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1 ,
     `deathtime`=`deathtime`+1

在此处使用逗号分隔语句

INSERT INTO `playTime` (`username`, `playtime`, `deathtime`)
VALUES ('Rogue', 1, 1)
ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1, `deathtime`=`deathtime`+1

示例可以在这里的文档中看到:

在这里使用逗号分隔语句

INSERT INTO `playTime` (`username`, `playtime`, `deathtime`)
VALUES ('Rogue', 1, 1)
ON DUPLICATE KEY UPDATE `playtime`=`playtime`+1, `deathtime`=`deathtime`+1

示例可以在此处的文档中看到:

谢谢!一定要爱那些小错误汉克!我喜欢这个小错误,它是一个布尔运算符,例如:1和1=1或1和0=0。您需要一个逗号,它是一个布尔运算符,例如:1和1=1或1和0=0。你需要一个逗号