2011-01-31 52 views
1

如何在MySQL中搜索小写字母?确保搜索小写字符

我有以下

$sql = "SELECT * FROM TABLE_NAME WHERE column LIKE '%$search%'"; 

如何确保在“列”中的值匹配小写?

回答

5

你要么你列的排序规则设置为区分大小写的一个,像UTF8_BIN,或进行额外的检查,在过滤器:

SELECT * 
FROM table_name 
WHERE column LIKE '%$search$%' 
     AND column COLLATE UTF8_BIN = LOWER(column COLLATE UTF8_BIN) 

需要注意的是,如果你的排序规则是不区分大小写的,像UTF8_GENERAL_CI,那么以下查询:

SELECT LOWER('A') = ('A') 

将返回true。在进行比较之前,您应该明确地强制列不区分大小写。

1

假设我解释正确,使用MySQL LOWER()功能:

$sql = "SELECT * FROM TABLE_NAME WHERE LOWER(column) LIKE '%$search%'"; 

这一切都将转换成column测试它针对搜索值之前为小写。

+1

如果使用不区分大小写的排序规则(并且问题事实暗示它),这将无济于事。 – Quassnoi 2011-01-31 17:15:53