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
,则执行“从t1将select(int1
-int2
)作为int3的结果”错误!谁能帮助我?谢谢! 最佳答案
BIGINT UNSIGNED
是无符号的,不能为负。
如果int1-int2
小于int1
,则表达式int2
将使用负中间值。
您应该隐式转换为SIGNED。尝试这个;)
select CAST(`int1`AS SIGNED) - CAST(`int2`AS SIGNED) as `int3` from t1