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 默认排序规则的坑相关推荐

  1. mysql查询语句详解_基于mysql查询语句的使用详解

    1> 查询数据表除了前三条以外的数据. 起初我想到的是这条语句 SELECT * FROM admin WHERE userid NOT IN (SELECT userid FROM admin ...

  2. keepalived mysql双主架构图_基于MySQL双主的高可用解决方案理论及实践

    MySQL在互联网应用中已经遍地开花,但是在银行系统中,还在生根发芽的阶段.本文记录的是根据某生产系统实际需求,对数据库高可用方案从需求.各高可用技术特点对比.实施.测试等过程进行整理,完善Mysql ...

  3. mysql数据库约束详解_基于MySQL数据库的数据约束实例及五种完整性约束介绍

    为了防止不符合规范的数据进入数据库,在用户对数据进行插入.修改.删除等操作时,DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确.有效.相容. ...

  4. mysql中时间处理函数_基于mysql时间处理函数的应用详解

    DAYOFWEEK(date) 返回日期date的星期索引(1=星期天,2=星期一, --7=星期六).这些索引值对应于ODBC标准. mysql> select DAYOFWEEK('1998 ...

  5. mysql中的exists嵌套_基于mysql 的exists 嵌套查询的详解

    select Sname from Student where not exists (select * from Course where not exists (select * from SC ...

  6. mysql常用排序规则_在MySQL中,我应该选择哪种排序规则?

    当我通过phpmyadmin创建一个新的mysql数据库时,我可以选择排序规则(例如-default.armscii8.ascii-).和UTF-8).我知道的是utf-8,因为我总是在HTML源代码 ...

  7. mysql查询默认排序规则_深究 mysql 默认排序, order by 的顺序【收藏】

    mysql 语句中如果没有使用 order by 来排序,通常会用 主键正序排列,但是有的时候不是这样,来看一个实例. 实例 群友问:请教一个问题,mysql 默认排序问题,当sql 语句 的排序没有 ...

  8. mysql geohash函数_基于MySQL实现按距离排序、范围查找geoHash

    简介 现在几乎所有的O2O应用中都会存在"按范围搜素.离我最近.显示距离"等等类似的功能,那这样的功能是怎么实现的呢?本文提供了基于MySQL的实现方式,同样适用于其它数据库.本文 ...

  9. mysql 名次语法规则_基于sql语句的一些常用语法积累总结

    1.当某一字段的值希望通过其它字值显示出来时(记录转换),可通过下面的语句实现:case Type when '1' then '普通通道' when '2' then '高端通道' end as T ...

最新文章

  1. ASP.NET在IIS上部署使用Oracle数据库无法连接数据库解决方法
  2. 计算机操作的功能是什么情况,计算机操作系统的主要功能是什么?
  3. 数据结构与算法之栈入门题目
  4. Leecode20. 有效的括号——Leecode大厂热题100道系列
  5. python如何获取url中的内容_python怎么提取url中的参数
  6. java密码模块怎么做_密码模块设计
  7. 计算机2020中级考试题,突发!2020年中级考试分值及评分标准大变!
  8. 鸿蒙电脑系统什么时候普及,鸿蒙操作系统开源是什么意思?华为鸿蒙系统什么时候能用...
  9. 深度学习10-tf.data-数据输入管道简介
  10. VMware Workstation 12 安装大于4GB的GHOST 64位win7系统
  11. 简述ip地址的abc类如何划分_IP地址ABC三类划分详细内容记录
  12. C++——oop思想
  13. Linux Qt cannot find -lGL
  14. 与商业经济有关的英语电影推荐:商学院学生必看的20部电影(图文)
  15. 用VML标记语言画图、动画制作
  16. 祝愿大家在新的一年里,万事大吉,送上我设计的可爱暴富小老虎微信红包封面,祝愿大家新的一年财运旺,事业旺,健康旺。
  17. c语言中要求对象只能为整数的运算符是,以下正确的叙述是( ) 答案:在C程序中, %是只能用于整数运算 的运算符...
  18. 李白一年挣多少钱?唐朝公务员待遇真好!
  19. 真正爱你的男孩是这样的
  20. Eclipse+多国语言包插件+Tomcat插件+Lomboz插件+Myeclipse插件的安装与配置

热门文章

  1. RecyclerView中notifyDataSetChanged刷新总结
  2. Unity尝试制作王者荣耀(十六)——FightScene(一)加载模型到场景中
  3. 形形色色的图片格式详解
  4. 看我如何复制学院管理员账户并畅游
  5. 购房过程中的风险控制
  6. Windows10 LTSC无法访问 NAS共享文件夹解决方法
  7. 前端应该掌握setTimeout的秘密
  8. 出售开通即时到帐支付宝关联名额
  9. UVa Q10137: The Trip (旅行)
  10. couple和double的区别_couple是什么意思_couple在线翻译_英语_读音_用法_例句_海词词典...