我四处看了看,没有找到我要找的东西,所以就这样了。

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

这很好,但如果树的名字是Elm或Elm等…

我如何使SQL不区分大小写为这个通配符搜索?

我使用MySQL 5和Apache。


当前回答

例如,如果你想搜索像Raja不是Raja, Royal不是Royal等名称,在WHERE子句的列名前添加BINARY。

SELECT name FROM person_tbl
WHERE BINARY name LIKE "R%";

其他回答

当我想开发不敏感的大小写搜索时,我总是在进行比较之前将每个字符串转换为小写

必须为表设置正确的编码和排序规则。

表编码必须反映实际的数据编码。你的数据编码是什么?

要查看表编码,可以运行查询SHOW CREATE table tablename

我总是用lower来解决这个问题:

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

限制使用ILIKE

SELECT * FROM trees WHERE trees.`title` ILIKE '%elm%';

这对我很管用!!

我认为这个查询将进行不区分大小写的搜索:

SELECT * FROM trees WHERE trees.`title` ILIKE '%elm%';