我有一个包含数量列的订单表。在 checkin 或 checkout 期间,我们需要将 Quantity 列更新一。有没有一种方法可以在一次操作中完成此操作,或者我们必须获取现有值,然后在其之上加一或减一?
另一个问题是当我们插入一个新行时,我们是否需要检查是否存在相同的数据,如果不存在则插入,这是两个步骤,还是有更好的方法来做到这一点?
谢谢,
最佳答案
先回答:
UPDATE Orders SET Quantity = Quantity + 1 WHERE ...
回答第二个:
有几种方法可以做到这一点。由于您没有指定数据库,我假设使用 MySQL。
INSERT INTO table SET x=1, y=2 ON DUPLICATE KEY UPDATE x=x+1, y=y+2
REPLACE INTO table SET x=1, y=2
他们都可以处理您的问题。但是,第一种语法允许更灵活地更新记录,而不是仅仅替换它(如第二种语法那样)。
请记住,要使两者都存在,必须定义一个 UNIQUE 键...
关于database - SQL如何在一个命令中增加或减少一个int列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973380/