我认为,如果此字段包含多个字符,那么in ('something')
比like '%something%'
快,对吧?
但是如果只有一个字符怎么办?
CREATE TABLE `example` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`name` varchar(50) DEFAULT NULL COMMENT 'name',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='example';
INSERT INTO `example` (`id`,`name`)
VALUES
(1,'A'),(2,'B'),(3,'C'),(4,'D'),(5,NULL),(6,'E');
那么select * from example where name like '%A%';
和select * from example where name in ('A');
有什么区别? in
比like
快吗?
此外,select * from example where name like '%%';
和select * from example where name in ('A','B','C','D','E');