2016-06-17 30 views
0
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 

如果int1int2更大,執行的結果 「選擇(int1 - int2)從T1作爲INT3」 是錯誤!誰能幫助我?謝謝!MySQL查詢無符號-unsigned錯誤

+0

哪些錯誤您收到後...錯誤也會? –

回答

0

BIGINT UNSIGNED是無符號的,不能是負數。

如果int1小於int2,則表達式int1-int2將使用負中間值。

您應該隱式轉換爲SIGNED.Try這一點;)

select CAST(`int1`AS SIGNED) - CAST(`int2`AS SIGNED) as `int3` from t1