日期:2014-05-16  浏览次数:20862 次

mysql里面有符号整数类型问题,请指点,谢谢
我在mysql中使用trigger写了一段小程序,其中有如下一个片段:
        select           NEW.sip2dip-sip2dip     into   samsip2dip   from   sample   where   port=NEW.dstport;
                if   samsip2dip> 0   then   set   samscore=samscore+samsip2dip*samsip2dip;   end   if;

其中samsip2dip是INT类型的,但是我发现samsip2dip总是大于0,也就是说,即使NEW.sip2dip-sip2dip     本来应该是0-5=-5 <0,反而给出的是一个大于0的数值,而不是-5.这个应该怎么修改呢?请指点,谢谢


------解决方案--------------------
samsip2dip字段是不是定义成了INT UNSIGNED?
对UNSIGNED数据列进行减法计算的时候返回值仍将是一个UNSIGNED整数,取值范围仅限于正数。
------解决方案--------------------
贴完整代码