MySQL数据库大小写敏感问题的破解

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

站在用户的角度思考问题,与客户深入沟通,找到淄博网站设计与淄博网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广、主机域名网站空间、企业邮箱。业务覆盖淄博地区。

数据库和表名

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

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

1.

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

2、列名

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

3、表的别名

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

1.

 
 
 
  1. MySQL> SELECT col_name FROM tbl_name AS a 

2.

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

4、列的别名

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

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

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

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

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

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

例如

 
 
 
  1. 1.Mysql> SELECT "E"="e","E"=BINARY "e";   
  2. 2.+---------+----------------+| "E"="e" | "E"=BINARY "e"   
  3. |+---------+----------------+| 1 | 0 |+---------+----------------+ 

上述的相关内容就是对MySQL数据库大小写问题的描述,希望会给你带来一些帮助在此方面。

名称栏目:MySQL数据库大小写敏感问题的破解
本文地址:http://www.hantingmc.com/qtweb/news19/287469.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联