database - SQL如何在一个命令中增加或减少一个int列

标签 database

我有一个包含数量列的订单表。在 checkin 或 checkout 期间,我们需要将 Quantity 列更新一。有没有一种方法可以在一次操作中完成此操作,或者我们必须获取现有值,然后在其之上加一或减一?

另一个问题是当我们插入一个新行时,我们是否需要检查是否存在相同的数据,如果不存在则插入,这是两个步骤,还是有更好的方法来做到这一点?

谢谢,

最佳答案

先回答:

UPDATE Orders SET Quantity = Quantity + 1 WHERE ...

回答第二个:

有几种方法可以做到这一点。由于您没有指定数据库,我假设使用 MySQL。

  1. INSERT INTO table SET x=1, y=2 ON DUPLICATE KEY UPDATE x=x+1, y=y+2
  2. REPLACE INTO table SET x=1, y=2

他们都可以处理您的问题。但是,第一种语法允许更灵活地更新记录,而不是仅仅替换它(如第二种语法那样)。

请记住,要使两者都存在,必须定义一个 UNIQUE 键...

关于database - SQL如何在一个命令中增加或减少一个int列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973380/

相关文章:

php - Lumen 5.6 迁移错误指定的 key 太长最大 key 长度为 767 字节

java - 如何对 SQL 查询进行单元测试?

mysql - 更新触发器不起作用后,不知道如何设置适当的条件

sql - 如何自动将数据从SQL Server 推送到Oracle?

mysql - 从 MySQL 数据库合并 PDF Blob 文件

sql-server - 数十亿行表的 Microsoft SQL Server 扩展

mysql - 抓取一个月或更长时间的日期记录

java - 没有 SQL 服务器的数据库持久性

java - Android 应用程序带有数据库以便人们可以共享数据?

javascript - 导出并使 MYSQL 数据库中的字符串有效期为 7 天