今天在写SQL语句是,where条件中使用了一个tinyint类型的字段做判断,自己没有留意写错了判断值,神奇的是竟然能查到数据
以下是表和对应的SQL语句
CREATE TABLE `test` (
`id` int(10) NOT NULL AUTO_INCREMENT COMMENT 'id',
`type` tinyint(4) NOT NULL COMMENT '类型',
`name` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '名称',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `test`(`id`, `type`, `name`) VALUES (1, 0, '名称0');
INSERT INTO `test`(`id`, `type`, `name`) VALUES (2, 1, '名称1');
INSERT INTO `test`(`id`, `type`, `name`) VALUES (3, 2, '名称2');
INSERT INTO `test`(`id`, `type`, `name`) VALUES (4, 0, '名称4');
执行下面的两条SQL语句,得到的结果竟然是一样的
select * from test where type = 'type ';
select * from test where type = 0;
在网上找了没有看到类似的问题,请教各位,这是什么原因呢?