我需要查询我的数据库,查找结果:不区分大小写的查询在MySQL
mysql_query("select * from ".ALU_TABLE." where username like '%$q%' or name like '%$q%'");
,如果我在我的表,如书有一个名字和我进入书搜索框就不会显示该图书
我需要查询我的数据库不区分大小写。
我需要查询我的数据库,查找结果:不区分大小写的查询在MySQL
mysql_query("select * from ".ALU_TABLE." where username like '%$q%' or name like '%$q%'");
,如果我在我的表,如书有一个名字和我进入书搜索框就不会显示该图书
我需要查询我的数据库不区分大小写。
可以使用LOWER()
功能
... WHERE LOWER(username) LIKE blabl OR LOWER(name) LIKE asdasd
的
这工作。但是,如果将列名作为参数提交给LOWER(),则不会允许db使用索引,因此它可能非常缓慢。 – 2010-06-12 14:12:03
嗯,不知道。好的提示 – 2010-06-12 14:17:01
您需要为查询添加类似COLLATE utf8_general_ci
的内容。 (该_ci
后缀代表不区分大小写)。
看一看文档:9.1.7.1. Using COLLATE in SQL Statements:
随着COLLATE子句,您可以覆盖任何默认排序规则是一个比较。 COLLATE可用于SQL语句的各个部分。
您的数据库可能已设置为不区分大小写排序规则。 – 2010-06-12 14:10:47
可能重复([案例SQL LIKE通配符声明不敏感] http://stackoverflow.com/questions/2876789/case-insensitive-for-sql -like-wildcard-statement) – 2010-06-12 17:07:04
另请参见:http://stackoverflow.com/search?q=mysql+case+insensitive – 2010-06-12 17:07:39