今天在執行這樣一條語句時:
SELECT store - freez AS less FROM `products`;
報如下錯誤:
Data truncation: BIGINT UNSIGNED value is out of range in '(`products`.`store` - `products`.`freez`)'
後經網上一查,得知是兩數相減結果可能為負數導致。詳細原因分析見:http://tech.it168.com/a2012/0808/1382/000001382732.shtml
MySQL關於“SQL服務器模式”的介紹在5.3.2章節。
那麼解決我遇到的這個問題的方法就是,在執行此SQL語句前,設置下sql_mode:
SET sql_mode='NO_UNSIGNED_SUBTRACTION';