在使用删除帖子后,我尝试了以下方法来减少计数器,GREATEST()
因此它不会产生负值:
SELECT GREATEST(0, posts - 1)
FROM users
WHERE id = 123
但它返回:
[Err] 1690 - BIGINT UNSIGNED value is out of range in '(`db1`.`users`.`posts` - 1)'
posts
回报0
:
SELECT posts
FROM users
WHERE id = 123
以下返回0
符合预期:
SELECT GREATEST(0, 0 - 1)
那我做错了什么?
如果您的
posts
列是BIGINT UNSIGNED
无符号值,则必须为0
或更多,因此-1
超出范围。