您的位置:首页 > 数据库 > MySQL

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

2014-12-25 11:21 330 查看
参考: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就会查询也区分大小写是不对的。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql