将数据库字段加1 [英] Increment a database field by 1

查看:247
本文介绍了将数据库字段加1的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用MySQL,如果我有一个字段(例如登录名),我将如何在sql命令中将该字段更新为1?

With MySQL, if I have a field, of say logins, how would I go about updating that field by 1 within a sql command?

我正在尝试创建一个INSERT查询,该查询创建firstName,lastName和登录名.但是,如果firstName和lastName的组合已经存在,则将登录数增加1.

I'm trying to create an INSERT query, that creates firstName, lastName and logins. However if the combination of firstName and lastName already exists, increment the logins by 1.

所以表可能看起来像这样.

so the table might look like this..

firstName----|----lastName----|----logins

John               Jones             1
Steve              Smith             3

我需要一个命令,该命令在运行时会插入一个新的人(即汤姆·罗杰斯),或者如果使用约翰·琼斯的名字则增加登录名.

I'm after a command that when run, would either insert a new person (i.e. Tom Rogers) or increment logins if John Jones was the name used..

推荐答案

更新条目:

一个简单的增量就可以解决问题.

Updating an entry:

A simple increment should do the trick.

UPDATE mytable 
  SET logins = logins + 1 
  WHERE id = 12

插入新行,或者如果已经存在,则更新:

如果您想更新先前存在的行,或者如果不存在则将其插入,则可以使用 Rob Van Dam 他的答案中进行了演示.

Insert new row, or Update if already present:

If you would like to update a previously existing row, or insert it if it doesn't already exist, you can use the REPLACE syntax or the INSERT...ON DUPLICATE KEY UPDATE option (As Rob Van Dam demonstrated in his answer).

或者您正在寻找类似 INSERT...MAX(logins)+1 之类的东西?本质上,您将运行类似于以下内容的查询-根据您的特定需求,可能会更复杂一些:

Or perhaps you're looking for something like INSERT...MAX(logins)+1? Essentially you'd run a query much like the following - perhaps a bit more complex depending on your specific needs:

INSERT into mytable (logins) 
  SELECT max(logins) + 1 
  FROM mytable

这篇关于将数据库字段加1的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆