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

mysql查询区分大小写

2012-04-24 17:24 411 查看
今天在查字典表时发现该知识点,记下来。
不同于oracle,mysql查询不区分大小写,附上sql

oracle select * from user_tab_columns where TABLE_NAME = 'USERS' --如果使用'users'查不出结果
mysql SELECT * from information_schema.TABLES where TABLE_SCHEMA = 'test' --与使用'TesT'查询结果相同
区分大小写 SELECT * from information_schema.TABLES where binary TABLE_SCHEMA = 'test'


创建表时加入binary参数效果一样

测试 alter table xx modify x varchar(20) binary;


这时查询xx字段就能区分大小写了,而且不需要binary参数。

查找资料发现,修改mysql参数lower_case_table_names也能达到一部分区分大小写的效果

mysql> show variables like '%case%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | ON    |
| lower_case_table_names | 1     |
+------------------------+-------+
试图修改时,失败
mysql> set lower_case_table_names = 2;
1238 - Variable 'lower_case_table_names' is a read only variable
通过修改my.ini文件,重启后发现
修改参数前后结果无变化。

mysql> select * from xx where x = 'DD';
+----+
| x  |
+----+
| dd |
| Dd |
| DD |
+----+
3 rows in set


貌似该参数在不同操作系统之间,导数据时若不一致才会出问题。

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