关于modl 增加或减少的问题

#1 anythink

今天在做回复功能的时候 发现 减少到 小于0 时就会报错

SQL 


UPDATE th_blog SET feedcount = feedcount + -1 WHERE bid = '24'



执行错误: BIGINT UNSIGNED value is out of range in '("th_blog"."feedcount" + -(1))'


有没有什么方法 如果小于0 就不进行插入 或者 屏蔽这条错误。 我试了 sql-mode=ANSI  好像不行

2011-07-18 13:08:54

#2 jake

把bigint类型改成float或者double类型,能支持负数就可以了。

2011-07-18 13:23:22

#3 anythink

我不希望他出现负数。 如果出现负数就始终为0  所以我才设置了 无符号整形

2011-07-18 13:24:34

#4 peter

可以先查询出来检查下,feedcount 还剩多少,再减去 1 ,然后判断 剩下的feedcount ,如果小于0 就强制赋值0呗

2011-07-18 13:33:37

#5 anythink

本想看看有木其他好办法

现在只能如此了

2011-07-18 13:37:50