CREATE TABLE `t1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`int1` bigint(20) unsigned NOT NULL,
`int2` bigint(20) unsigned NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
如果int1
大于int2
,则执行"选择(int1
- int2
)作为来自t1&#34的int3的结果是错误的!谁能帮助我?谢谢!
答案 0 :(得分:0)
BIGINT UNSIGNED
未签名,不能为否定。
如果int1-int2
小于int1
,您的表达式int2
将使用负中间值。
你应该隐式转换为SIGNED。试试这个;)
select CAST(`int1`AS SIGNED) - CAST(`int2`AS SIGNED) as `int3` from t1