我四处看了看,没有找到我要找的东西,所以就这样了。
SELECT * FROM trees WHERE trees.`title` LIKE '%elm%'
这很好,但如果树的名字是Elm或Elm等…
我如何使SQL不区分大小写为这个通配符搜索?
我使用MySQL 5和Apache。
我四处看了看,没有找到我要找的东西,所以就这样了。
SELECT * FROM trees WHERE trees.`title` LIKE '%elm%'
这很好,但如果树的名字是Elm或Elm等…
我如何使SQL不区分大小写为这个通配符搜索?
我使用MySQL 5和Apache。
当前回答
大小写敏感性在列/表/数据库排序规则设置中定义。指定排序规则下的查询方法如下:
SELECT *
FROM trees
WHERE trees.`title` LIKE '%elm%' COLLATE utf8_general_ci
例如。
(将utf8_general_ci替换为任何您认为有用的排序规则)。_ci代表不区分大小写。
其他回答
当我想开发不敏感的大小写搜索时,我总是在进行比较之前将每个字符串转换为小写
例如,如果你想搜索像Raja不是Raja, Royal不是Royal等名称,在WHERE子句的列名前添加BINARY。
SELECT name FROM person_tbl
WHERE BINARY name LIKE "R%";
在mysql 5.5中,操作符是不敏感的…如果你的值是elm或elm或elm或其他,你使用'%elm%',它会列出所有匹配的值。
我不能说早期版本的mysql。
如果你在Oracle中,work是区分大小写的,所以如果你输入'%elm%',它只会显示这个,忽略大写。
很奇怪,但事实就是这样的:)
非二进制字符串比较(包括LIKE)在MySql中默认是不区分大小写的: https://dev.mysql.com/doc/refman/en/case-sensitivity.html
SELECT name
FROM gallery
WHERE CONVERT(name USING utf8) LIKE _utf8 '%$q%'
GROUP BY name COLLATE utf8_general_ci LIMIT 5