我四处看了看,没有找到我要找的东西,所以就这样了。
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。
当前回答
非二进制字符串比较(包括LIKE)在MySql中默认是不区分大小写的: https://dev.mysql.com/doc/refman/en/case-sensitivity.html
其他回答
我总是用lower来解决这个问题:
SELECT * FROM trees WHERE LOWER( trees.title ) LIKE '%elm%'
这是一个简单的LIKE查询的例子:
SELECT * FROM <table> WHERE <key> LIKE '%<searchpattern>%'
现在,使用LOWER() func区分大小写:
SELECT * FROM <table> WHERE LOWER(<key>) LIKE LOWER('%<searchpattern>%')
简单地使用:
"SELECT * FROM `trees` WHERE LOWER(trees.`title`) LIKE '%elm%'";
或使用
"SELECT * FROM `trees` WHERE LCASE(trees.`title`) LIKE '%elm%'";
两个函数的工作原理是一样的
当我想开发不敏感的大小写搜索时,我总是在进行比较之前将每个字符串转换为小写
我总是这样解决:
SELECT * FROM trees WHERE LOWER( trees.title ) LIKE LOWER('%elm%');