1
UPDATE users SET items=items-10000;

问题是一些用户没有 10000 项要扣除,我得到了超出范围的错误。如果用户没有 10000 个项目,如何调整查询,项目将设置为 0?

4

1 回答 1

4

您可以使用以下CASE语句执行此操作:

UPDATE users 
SET items=CASE 
  WHEN items-10000 < 0 
  THEN 0 
  ELSE items-10000 
END;

或者,GREATEST()

UPDATE users SET items=GREATEST(items-10000, 0);
于 2013-08-02T19:03:35.197 回答