mysql的大小写问题

 

大小写敏感性

1、数据库和表名

MySQL中,数据库和表对应于在那些目录下的目录和文件,因而,内在的操作系统的敏感性决定数据库和表命名的大小写敏感性。这意味着数据库和表名在Unix上是区分大小写的,而在Win32上忽略大小写。

注意:在Win32上,尽管数据库和表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下列查询将不工作,因为它作为my_table和作为MY_TABLE引用一个表:

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

2、列名

列名在所有情况下都是忽略大小写的。

3、表的别名

表的别名是区分大小写的。下列查询将不工作,: 因为它用aA引用别名:

mysql> SELECT col_name FROM tbl_name AS a

           WHERE a.col_name = 1 OR A.col_name = 2;

4、列的别名

列的别名是忽略大小写的。

5、字符串比较和模式匹配

缺省地,MySQL搜索是大小写不敏感的(尽管有一些字符集从来不是忽略大小写的,例如捷克语)。这意味着,如果你用col_name LIKE 'a%'搜寻,你将得到所有以Aa开始的列值。如果你想要使这个搜索大小写敏感,使用象INDEX(col_name, "A")=0检查一个前缀。或如果列值必须确切是"A",使用STRCMP(col_name, "A") = 0

简单的比较操作(>=>= < <=、排序和聚合)是基于每个字符的“排序值”。有同样排序值的字符(Ee)被视为相同的字符!

LIKE比较在每个字符的大写值上进行(“E”=”e”)

如果你想要一个列总是被当作大小写敏感的方式,声明它为BINARY

例如:

mysql> SELECT "E"="e","E"=BINARY "e";

+---------+----------------+
| "E"="e" | "E"=BINARY "e" |
+---------+----------------+
|       1 |              0 |
+---------+----------------+
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值