SQL服务器模式
今天在执行这样一条语句时:
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';