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

30 浏览
0 Comments

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

我四处寻找,但并没有找到我想要的,所以在这里。

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

这个方法很好用,但如果树被命名为Elm或ELM等,就不行了...

如何使SQL对这种通配符搜索不区分大小写?

我正在使用MySQL 5和Apache。

admin 更改状态以发布 2023年5月21日
0
0 Comments

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. 

这还将重新构建此列上的任何索引,以便可以用于不带前导“%”的查询。

0
0 Comments

我一直用lower方法来解决这个问题:

SELECT * FROM trees WHERE LOWER( trees.title ) LIKE  '%elm%'

0