mysql中默认排序教程(基于mysql 默认排序规则的坑)
mysql中默认排序教程
基于mysql 默认排序规则的坑mysql默认varchar类型是对大小写不敏感(不区分),如果想要mysql区分大小写需要设置排序规则:
utf8_bin将字符串中的每一个字符用二进制数据存储,区分大小写。
utf8_genera_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。
utf8_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感。
用utf8_genera_ci没有区分大小写,导致这个字段的内容区分大小写时出问题,比如作为区分大小写的code或者验证码时就出问题了。
utf8_general_cs这个选项一般没有,所以只能用utf8_bin区分大小写。
1)设置排序规则是可逆的,如果之前设置的排序规则不符合,更换排序规则后,可能出现乱码,当再次恢复原来的排序规则后,乱码即消失。
2)可以将varchar 类型改为 varbinary
3)如果已经使用了默认的排序规则,即utf8_genera_ci,而又想查询结果大小写区分,可以在查询时进行限定:
|
select binary column from table ; |
或者
|
select column2 from table where binary cloumn; |
补充:mysql中的字符集和排序规则
字符集:
字符是各种文字和符号的总称,字符集就是字符的集合。常见字符集名称:ASCII字符集、GB2312字符集、BIG5字符集、GB18030字符集、Unicode字符集等。
计算机要识别各种字符集文字,就需要字符编码。所以有些字符集一个字符是2个字节,有些字符集一个字符是3个字节。
排序规则:举例
utf_bin和utf_general_ci这两者到底有什么区别。
ci是case insensitive, 即"大小写不敏感",a 和 A 会在字符判断中会被当做一样的;
bin是二进制, a 和A 会别区别对待.
utf8_general_ci不区分大小写,这个你在注册用户名和邮箱的时候就要使用。
utf8_general_cs区分大小写,如果用户名和邮箱用这个 就会照成不良后果
utf8_bin:字符串每个字符串用二进制数据编译存储。区分大小写,而且可以存二进制的内容
所以排序规则主要说明了是否大小写敏感和存储方式。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持开心学习网。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/qq_33045443/article/details/88670154
- mysql如何检查索引失效(mysql索引失效的几种情况分析)
- mysql标签的用法(mysql 的indexof函数用法说明)
- mysql update 多个字段(mysql update case 更新字段值不固定的操作)
- mysql order by id查询变慢(MySQL不使用order by实现排名的三种思路总结)
- mysql中自增字段类型(MySQL数字类型自增的坑)
- 解释mysql慢查询(MySQL Threads_running飙升与慢查询的相关问题解决)
- 对mysql性能优化的看法(聊聊MySQL的COUNT的性能,看看怎么最快?)
- 如何在cmd里开启mysql(Windows下通过cmd进入DOS窗口访问MySQL数据库)
- mysql分区表的优缺点(MySQL数据表分区策略及优缺点分析)
- mysql binlog如何查看(MySQL binlog_ignore_db 参数的具体使用)
- mac版本php环境搭建(在Mac OS X中配置Apache+PHP+MySQL运行环境的详细步骤)
- mysqldecimal类型数据转换(mysql decimal数据类型转换的实现)
- mysql索引的类型和方法(MySQL覆盖索引的使用示例)
- mysql千万数据如何优化(MySQL千万级数据的表如何优化)
- mysql常用优化方法(理解MySQL查询优化处理过程)
- mysql查看执行慢的sql(系统隐形杀手——阻塞与等待SQL)
- 蓝色代表什么(蓝色代表什么性格的人)
- 红色代表什么(红色代表什么情感和含义)
- 南宋志南和尚绝句 杨柳风似庙中来(南宋志南和尚绝句)
- 今天要穿什么颜色(今天要穿什么颜色的衣服最吉利)
- 一道高中题-求杯子的高度(一道高中题-求杯子的高度)
- 网坛停摆三巨头亏损惨重,费德勒跌幅88 纳达少赚2400万(网坛停摆三巨头亏损惨重)
热门推荐
- SQL Server ltrimrtrim函数的用法(SQL Server ltrimrtrim 去不掉空格的原因分析)
- 无法访问docker容器内的端口(docker端口映射及外部无法访问问题)
- python开启线程池(对python:threading.Thread类的使用方法详解)
- sql server使用手册(SQL Server连接查询的实用教程)
- sqlserver数据库还原教程(SQL Server通过重建方式还原master数据库)
- 介绍几个Visual Studio 调试技巧
- mysql数据库简单操作(一篇文章教会你进行MySQL数据库和数据表的基本操作)
- HttpModule的作用
- apache安装与配置windows(Apache 安装和使用文档)
- ubuntu20.04安装启动问题(安装ubuntu18.04报:failed to load ldlinux.c32的问题及解决步骤)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9