北京SEO

MySQL对大小写敏感一些总结

2019/10/10/17:34:12  阅读:1748  来源:谷歌SEO算法  标签: SEO培训

MySQL的大小写敏感其实是根据用户的操作系统来的,可以强制以 -O lower_case_table_names=1 参数启动 mysqld,如果使用 --defaults-file=...\\my.cnf 参数来读取指定的配置文件启动 mysqld 的话,你需要在配置文件的 [mysqld] 区段下增加一行 lower_case_table_names=1.

这样MySQL 将在创建与查找时将所有的表名自动转换为小写字符,这个选项缺省地在 Windows 中为 1,在 Unix 中为 0。从 MySQL 4.0.2 开始,这个选项同样适用于数据库名.

当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母.

换句话说,如果你希望在数据库里面创建表的时候保留大小写字符状态,则应该把这个参数置0:lower_case_table_names=1.

否则的话你会发现同样的sqldump脚本在不同的操作系统下最终导入的结果不一样(在Windows下所有的大写字符都变成小写了)。

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

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

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

3、表的别名.

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

  1. Mysql>SELECTcol_nameFROMtbl_nameASa
  2. WHEREa.col_name=1ORA.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. Mysql>SELECT"E"="e","E"=BINARY"e";
  2. +---------+----------------+|"E"="e"|"E"=BINARY"e"
  3. |+---------+----------------+|1|0|+---------+----------------+
  4. --phpfensi.com

广告内容

MySQL对大小写敏感一些总结 MySQL对大小写敏感一些总结 MySQL对大小写敏感一些总结

相关阅读

热门评论

sunshine技术博客 sunshine技术博客

sunshine技术博客

总篇数164

精选文章

RMAN中catalog和nocatalog区别介绍 小技巧:为Linux下的文件分配多个权限 zimbra8.5.1安装第三方签名ssl证书的步骤 解决mysql不能远程连接数据库方法 windows服务器mysql增量备份批处理数据库 mysql中slow query log慢日志查询分析 JavaScript跨域问题总结 Linux下负载均衡软件LVS配置(VS/DR)教程 mysql中权限参数说明 MYSQL(错误1053)无法正常启动

SEO最新算法