测试如下:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` varchar(255) CHARACTER SET utf8 NOT NULL,
`b` varchar(255) CHARACTER SET utf8 NOT NULL,
`c` decimal(14,2) NOT NULL DEFAULT '0.00',
`d` int(255) NOT NULL DEFAULT '0',
`e` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci ROW_FORMAT=COMPACT;
-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES ('1', 'a', '0', '1.10', '2', 'aa');
INSERT INTO `test` VALUES ('2', 'a', '1', '2.10', '3', 'bb');
INSERT INTO `test` VALUES ('3', 'b', '0', '1.40', '4', 'cc');
INSERT INTO `test` VALUES ('4', 'b', '1', '2.10', '5', 'ded');
1)测试语句如下:
select a,b,IFNULL(a,'合计') a1, if(ISNULL(a),'合计',a) a2,sum(c) c from test group by a,b with ROLLUP
2)结果如下:
3)通过上面红色区域,可以看到,通过ifnull,能判断出null值,通过isnull,没有判断出
为什么会出现这种情况?是我的用法不对吗?