1.创建表:
CREATE TABLE `aaa666` (
`id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='测试字段包含空格';
2.插入测试数据
INSERT INTO `aaa666`(`id`, `name`) VALUES (1, 'zhang 1');
INSERT INTO `aaa666`(`id`, `name`) VALUES (2, 'zhang 2 ');
INSERT INTO `aaa666`(`id`, `name`) VALUES (3, 'zhang 3 ');
INSERT INTO `aaa666`(`id`, `name`) VALUES (4, ' zhang 4 ');
INSERT INTO `aaa666`(`id`, `name`) VALUES (5, 'zhang 5 ');
3.查询
3.1
like不处理空格,一般直接like ' keyWork%'
select * from aaa666 where name like "zhang 2";
结果:无返回
3.2
等号直接过滤了末尾的空格
查询1
select * from aaa666 where name = "zhang 2";
结果:
id name
2 zhangsan
查询2
select * from aaa666 where name like "zhang 4";
结果:无数据
查询3
select * from aaa666 where name ="zhang 4";
结果:无数据
总结:
mysql对varchar查询使用=会过滤字段末尾的空格,但是不会过滤起始的空格
mysql对varchar查询使用like查询字段首尾的空格都不会处理,使用like建议加上"%"