mysql使用like搜索不区分大小写方法之一

col_name COLLATE xxx_general_cs LIKE 'a%'
col_name LIKE 'a%' COLLATE xxx_general_cs
col_name COLLATE xxx_bin LIKE 'a%'
col_name LIKE 'a%' COLLATE xxx_bin


使用a搜索,以a或A开头的记录都将返回


### MySQLLIKE 查询区分大小写的处理方法MySQL 数据库中,默认情况下字符串比较操作(包括 `LIKE`)可能会严格区分大小写,这取决于字符集和排序规则的设置。为了实现区分大小写的 `LIKE` 查询,可以采用多种方式。 #### 使用内置函数转换为统一大小写 一种常见做法是在执行匹配前通过 SQL 函数将待查字段以及模式串都转成相同的大写或小写字母形式来进行对比: ```sql SELECT * FROM trees WHERE LOWER(title) LIKE '%elm%'; ``` 此语句会把表 `trees` 的每一行记录中的 `title` 字段值先全部转化为小写再做模糊匹配[^5]。 #### 修改数据库配置项 如果希望整个服务器实例或者特定数据库内的所有查询均保持一致的行为,则可以通过调整全局变量来改变默认行为。对于想要让所有的名称识别都考虑字母大小的情况,可设置参数 `lower_case_table_names=1` ,但这主要影响的是对象名而非数据内容本身[^3]。 需要注意的是,在生产环境中随意改动此类核心选项可能会带来意想到的影响,因此建议谨慎评估后再决定是否实施这样的变更措施。 #### 应用 BINARY 运算符强制区分大小写 当确实需要某些场景下维持严格的大小写敏感度时,可以在表达式前面加上 `BINARY` 关键词以指示该次运算应视为二进制级别的精确对照: ```sql SELECT * FROM users WHERE BINARY username = 'JohnDoe'; ``` 过这里讨论的主题是如何做到“区分”,所以这个技巧并适用于当前需求[^1]。 #### 设定合适的字符编码与校对规则 最根本的办法还是在于创建表格之初就指定好恰当的字符集及其对应的 collation 属性。比如使用 utf8mb4_unicode_ci 而是 _bin 结尾的形式就能确保大多数情况下的忽略大小写特性[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值