例如:有一个user_notice表,里面有一个count字段,是代表当前用户有多少条需要阅读的消息的,阅读完毕以后,会更新改字段,统一减去1或者指定的数值(例如全部置为已读),因此如果count字段的数值小于阅读的数量,会出现负数的情况,可以这样写SQL语句避免:
例如要减去的数量是6:
update user_notice
set count=
case
when count<6
then 0
else count-6
end
如果当前数值不够减,就直接置为0。
在MySQL上测试通过。