mysql 2个排序规则_基于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:字符串每个字符串用二进制数据编译存储。区分大小写,而且可以存二进制的内容
所以排序规则主要说明了是否大小写敏感和存储方式。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
mysql 2个排序规则_基于mysql 默认排序规则的坑相关推荐
- mysql查询语句详解_基于mysql查询语句的使用详解
1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ...
- keepalived mysql双主架构图_基于MySQL双主的高可用解决方案理论及实践
MySQL在互联网应用中已经遍地开花,但是在银行系统中,还在生根发芽的阶段.本文记录的是根据某生产系统实际需求,对数据库高可用方案从需求.各高可用技术特点对比.实施.测试等过程进行整理,完善Mysql ...
- mysql数据库约束详解_基于MySQL数据库的数据约束实例及五种完整性约束介绍
为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. ...
- mysql中时间处理函数_基于mysql时间处理函数的应用详解
DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, --7=星期六).这些索引值对应于ODBC标准. mysql> select DAYOFWEEK('1998 ...
- mysql中的exists嵌套_基于mysql 的exists 嵌套查询的详解
select Sname from Student where not exists (select * from Course where not exists (select * from SC ...
- mysql常用排序规则_在MySQL中,我应该选择哪种排序规则?
当我通过phpmyadmin创建一个新的mysql数据库时,我可以选择排序规则(例如-default.armscii8.ascii-).和UTF-8).我知道的是utf-8,因为我总是在HTML源代码 ...
- mysql查询默认排序规则_深究 mysql 默认排序, order by 的顺序【收藏】
mysql 语句中如果没有使用 order by 来排序,通常会用 主键正序排列,但是有的时候不是这样,来看一个实例. 实例 群友问:请教一个问题,mysql 默认排序问题,当sql 语句 的排序没有 ...
- mysql geohash函数_基于MySQL实现按距离排序、范围查找geoHash
简介 现在几乎所有的O2O应用中都会存在"按范围搜素.离我最近.显示距离"等等类似的功能,那这样的功能是怎么实现的呢?本文提供了基于MySQL的实现方式,同样适用于其它数据库.本文 ...
- mysql 名次语法规则_基于sql语句的一些常用语法积累总结
1.当某一字段的值希望通过其它字值显示出来时(记录转换),可通过下面的语句实现:case Type when '1' then '普通通道' when '2' then '高端通道' end as T ...
最新文章
- ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法
- 计算机操作的功能是什么情况,计算机操作系统的主要功能是什么?
- 数据结构与算法之栈入门题目
- Leecode20. 有效的括号——Leecode大厂热题100道系列
- python如何获取url中的内容_python怎么提取url中的参数
- java密码模块怎么做_密码模块设计
- 计算机2020中级考试题,突发!2020年中级考试分值及评分标准大变!
- 鸿蒙电脑系统什么时候普及,鸿蒙操作系统开源是什么意思?华为鸿蒙系统什么时候能用...
- 深度学习10-tf.data-数据输入管道简介
- VMware Workstation 12 安装大于4GB的GHOST 64位win7系统
- 简述ip地址的abc类如何划分_IP地址ABC三类划分详细内容记录
- C++——oop思想
- Linux Qt cannot find -lGL
- 与商业经济有关的英语电影推荐:商学院学生必看的20部电影(图文)
- 用VML标记语言画图、动画制作
- 祝愿大家在新的一年里,万事大吉,送上我设计的可爱暴富小老虎微信红包封面,祝愿大家新的一年财运旺,事业旺,健康旺。
- c语言中要求对象只能为整数的运算符是,以下正确的叙述是( ) 答案:在C程序中, %是只能用于整数运算 的运算符...
- 李白一年挣多少钱?唐朝公务员待遇真好!
- 真正爱你的男孩是这样的
- Eclipse+多国语言包插件+Tomcat插件+Lomboz插件+Myeclipse插件的安装与配置
热门文章
- RecyclerView中notifyDataSetChanged刷新总结
- Unity尝试制作王者荣耀(十六)——FightScene(一)加载模型到场景中
- 形形色色的图片格式详解
- 看我如何复制学院管理员账户并畅游
- 购房过程中的风险控制
- Windows10 LTSC无法访问 NAS共享文件夹解决方法
- 前端应该掌握setTimeout的秘密
- 出售开通即时到帐支付宝关联名额
- UVa Q10137: The Trip (旅行)
- couple和double的区别_couple是什么意思_couple在线翻译_英语_读音_用法_例句_海词词典...