如何在MySQL中搜索小写?
我有以下
$sql = "SELECT * FROM TABLE_NAME WHERE column LIKE '%$search%'";
如何确保“column”中的值与小写匹配?
答案 0 :(得分: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 :(得分:1)
假设我正确解释,请使用MySQL LOWER()
函数:
$sql = "SELECT * FROM TABLE_NAME WHERE LOWER(column) LIKE '%$search%'";
这会将column
中的所有内容转换为小写,然后再根据搜索值进行测试。