一尘不染

如何使用LIKE通配符在列中搜索(不区分大小写)?

mysql

我环顾四周,却找不到我想要的东西,所以去了。

SELECT * FROM trees WHERE trees.`title` LIKE  '%elm%'

这很好用,但是如果树被命名为Elm或ELM等则不行。

如何使此通配符搜索的SQL大小写不敏感?

我正在使用MySQL 5和Apache。


阅读 495

收藏
2020-05-17

共1个答案

一尘不染

SELECT  *
FROM    trees
WHERE   trees.`title` COLLATE UTF8_GENERAL_CI LIKE '%elm%'

实际上,如果添加COLLATE UTF8_GENERAL_CI到列的定义中,则可以忽略所有这些技巧:它将自动运行。

ALTER TABLE trees 
 MODIFY COLUMN title VARCHAR(…) CHARACTER 
 SET UTF8 COLLATE UTF8_GENERAL_CI.

这还将重建该列上的所有索引,以便它们可用于查询而无需前导’%’

2020-05-17