MySQL查询不区分大小写的问题

本文探讨了在MySQL中处理查询大小写不匹配的问题,包括使用binary关键字和修改表结构来确保查询时区分大小写。此外,文章还介绍了MySQL表名、关键字和数据表内容大小写设置的相关规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:1. MySQL查询不区分大小写的问题

            2. MySQL数据表中内容大小写区分的设置

问题描述:

         要在我的表User中插入一条name='HELLO' 的记录,先去查询有木有这样的记录,结果查询出来一条name='hello'的记录,于是插入name='HELLO' 的记录失败。
通过查找资料可知,MySQL默认查询是不区分大小写的,可以通过binary关键字加以解决。

解决方法有两种:

  第一种:让mysql查询时区分大小写

       select * from User where binary name= 'HELLO';

  第二种:在建表时加以标识

        create table table_name {

                   id varchar(32) binary;

        }

对于现在已经建好的表,可以修改表结构:

alter table User change name name varchar(10) binary;


在mysql中,存在大小写问题的地方还有:

1. 关键字不区分大小写 SELECT * FROM User; 与select * from User;是等价的。

2. 表名不区分大小写:  默认表名不区分大小写的,若想开启表名区分大小写操作如下:

可以修改my.ini或者my.cnf
[mysqld]
lower_case_table_names=1
(0:区分;1:不区分)
然后重启MYSQL服务。

mysql> show variables like '%case_table%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)


参考2. MySQL数据表中内容大小写区分的设置  的说法有误,所开启lower_case_table_names就会查询也区分大小写是不对的。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值