使用MySQL,如果我有一个字段,例如登录名,我将如何在sql命令中将该字段更新为1?
我正在尝试创建一个INSERT查询,该查询创建firstName,lastName和登录名。但是,如果firstName和lastName的组合已经存在,则将登录数增加1。
因此表格可能看起来像这样。
firstName----|----lastName----|----logins John Jones 1 Steve Smith 3
我需要一个命令,该命令在运行时会插入一个新的人(即Tom Rogers),或者如果使用约翰·琼斯的名字则增加登录名。
一个简单的增量就可以解决问题。
UPDATE mytable SET logins = logins + 1 WHERE id = 12
如果您想更新先前存在的行,或者如果不存在则将其插入,则可以使用REPLACE语法或INSERT...ON DUPLICATE KEY UPDATE选项(如Rob Van Dam在他的回答中所示)。
REPLACE
INSERT...ON DUPLICATE KEY UPDATE
也许您正在寻找类似的东西INSERT...MAX(logins)+1?本质上,您将运行类似于以下内容的查询-根据您的特定需求,可能会更复杂一些:
INSERT...MAX(logins)+1
INSERT into mytable (logins) SELECT max(logins) + 1 FROM mytable