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

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

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

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

我使用MySQL 5和Apache。


当前回答

限制使用ILIKE

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

这对我很管用!!

其他回答

简单地使用:

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

或使用

"SELECT * FROM `trees` WHERE LCASE(trees.`title`) LIKE  '%elm%'";

两个函数的工作原理是一样的

大小写敏感性在列/表/数据库排序规则设置中定义。指定排序规则下的查询方法如下:

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

例如。

(将utf8_general_ci替换为任何您认为有用的排序规则)。_ci代表不区分大小写。

我总是这样解决:

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

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

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

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

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