一、表结构和数据
CREATE TABLE `test` (
`column1` int(10) DEFAULT NULL,
`column2` int(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `test`.`test`(`column1`, `column2`) VALUES (NULL, NULL);
INSERT INTO `test`.`test`(`column1`, `column2`) VALUES (1, NULL);
INSERT INTO `test`.`test`(`column1`, `column2`) VALUES (NULL, 2);
INSERT INTO `test`.`test`(`column1`, `column2`) VALUES (1, 1);
执行:select * from test;
结果:
二、Null运算
1、错误现象
当数值为Null的时候,做任何运算,其结果都是Null
SELECT
column1 + column2,
column1 - column2,
column1 * column2,
column1 / column2
FROM
test;
2、解决方案
使用 ifnull来处理Null值
SELECT
ifnull( column1, 0 )+ ifnull( column2, 0 ),
ifnull( column1, 0 )- ifnull( column2, 0 ),
ifnull( column1, 0 )* ifnull( column2, 0 ),
ifnull( column1, 0 )/ ifnull( column2, 0 )
FROM
test;