确保搜索小写字符

问题描述 投票:0回答:3

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

我有以下内容

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

如何确保“column”中的值与小写字母匹配?

mysql
3个回答
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
中的所有内容转换为小写,然后再针对搜索值进行测试。


0
投票

LIKE 运算符默认不区分大小写,因此仅使用该运算符应该没问题,并且您可以忽略使用 LOWER() 喜欢文档

© www.soinside.com 2019 - 2024. All rights reserved.