如何在 MySQL 中搜索小写字母?
我有以下内容
$sql = "SELECT * FROM TABLE_NAME WHERE column LIKE '%$search%'";
如何确保“column”中的值与小写字母匹配?
您应该将列的排序规则设置为区分大小写的排序规则,例如
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。在进行比较之前,您应该显式地将列强制为不区分大小写的排序规则。
假设我解释正确,请使用 MySQL
LOWER()
函数:
$sql = "SELECT * FROM TABLE_NAME WHERE LOWER(column) LIKE '%$search%'";
这会将
column
中的所有内容转换为小写,然后再针对搜索值进行测试。
LIKE 运算符默认不区分大小写,因此仅使用该运算符应该没问题,并且您可以忽略使用 LOWER() 喜欢文档