COLLATE的作用

本质上MySQL是通过COLLATE取值决定字符串运算是否大小写敏感,以及如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响 DISTINCT、GROUP BY、HAVING语句的查询结果。另外,MySQL建索引的时候,如果索引列是字符类型,也会影响索引创建,只不过这种影响我们感知不到。总之,凡是涉及到字符类型比较或排序的地方,都会和 COLLATE有关。

各种COLLATE的区别

在MySQL中使用show collation指令可以查看到MySQL所支持的所有 COLLATE。
一般来说每种CHARSET都有多种它所支持的COLLATE,并且每种CHARSET都指定一种COLLATE为默认值。如GBK编码的默认COLLATE为gbk_chinese_ci,utf8mb4编码的默认值为utf8mb4_general_ci。

很多COLLATE都带有_ci字样,这是Case Insensitive的缩写,即大小写无关,而以_bin或_cs为后缀的表示大小写敏感的,bin是Binary的缩写,cs是Case Sensitive的缩写。

mysql查询怎么区分大小写

1.在SQL语句中加入 binary来区分大小写。BINARY不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写

SELECT * FROM student WHERE BINARY name = 'assaA';
--或者
SELECT * FROM student WHERE name = BINARY 'AssaA';

2.定义表结构时指定字段大小写敏感

关键字 BINARY 指定 name 字段大小写敏感。如此在查询时就算不使用 BINARY 关键字,查询语句也是大小写敏感的。在此基础上创建的 name 相关的索引也是大小写敏感的,也就能够使用索引来提高性能。MySQL 允许在大多数字符串类型上使用 BINARY 关键字,用于指明所有针对该字段的运算是大小写敏感的


CREATE TABLE student (...name VARCHAR(64) BINARY NOT NULL,...)

3.修改排序规则(COLLATE)

ALTER TABLE t_order CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;

MySQL的排序规则COLLATE相关推荐

  1. MySQL常用排序规则utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin

    文章目录 一.MySQL常用排序规则简介 二.修改字符集及排序规则 1.修改表字符集及排序规则 2.修改字段字符集及排序规则 一.MySQL常用排序规则简介 UTF-8是使用1~4个字节,一种变长的编 ...

  2. mysql 中文排序是什么规则_什么是 MySQL 的排序规则(Collation)?

    什么是 MySQL 的排序规则(Collation)? 马富天 2020-01-19 14:56:58 15 [摘要]当我们在使用 navicate for mysql 等第三方客户端管理界面新建一个 ...

  3. SQL Server 与 MySQL 中排序规则与字符集相关知识的一点总结

    字符集&&排序规则 字符集是针对不同语言的字符编码的集合,比如UTF-8字符集,GBK字符集,GB2312字符集等等,不同的字符集使用不同的规则给字符进行编码.排序规则则是在特定字符集 ...

  4. mysql 数据库排序规则

    MySQL中的排序规则.在新建MySQL数据库或表的时候经常会选择字符集和排序规则.数据库用的字符集大家都知道是怎么回事,那排序规则是什么呢? 排序规则:是指对指定字符集下不同字符的比较规则.其特征有 ...

  5. mysql字符集排序规则_MySQL原理 - 字符集与排序规则

    任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集).这些字符如何排序呢?决定字符排序的规则就是排序规则. 查 ...

  6. mysql默认排序规则_mysql 字符集与排序规则的简单了解

    在创建数据库时候,会有字符集和排序规则的选项,太多的选项,就算盲选也有些为难,下面我们一起简单了解下: Navicat Premium 截图 这里先说我的做法,然后简单说下原因 字符集:utf8mb4 ...

  7. mysql字符排序规则utf8mb4_0900_ai_ci修改为utf8_general_ci

    目录标题 0.[一定注意] 1. 查看排序规则 2. 数据库修改 3. 字段修改 4. 表修改 0.[一定注意] 表不能有外键 ,可以有索引 1. 查看排序规则 show variables wher ...

  8. mysql选择排序规则_关于mysql创建数据库中字符集和排序规则的选择

    1:字符集: 一般 主要选择两种: 1:utf8   (看unicode编码区从1 - 126就属于传统utf8区,),一般都够用,除非需要存储特殊字符 2:utf8mb4(utf8mb4兼容utf8 ...

  9. mysql默认排序规则utf8mb4_Mysql字符集和排序规则 - UTF8mb4 520

    问题:由于缺少排序规则,mysqldump将无法导入 1273 - 未知排序规则:'utf8mb4_unicode_520_ci' Mysql服务器是(来自phpMyAdmin): Server ve ...

最新文章

  1. OpenCV Mat 简介
  2. Spring Session - 源码解读
  3. (原创)让mongodb的secondary支持读操作
  4. 八款Js框架介绍及比较~转载
  5. 关于fetch api这点事
  6. hive遍历_从Hive中的stored as file_foramt看hive调优
  7. Git学习笔记(2) --- References探寻
  8. 爬虫-练习-爬取访问后可见的内容
  9. 最大后验估计_极大似然估计 V.S. 贝叶斯估计
  10. ModelSim入门教程和两个典型例子
  11. 应用多开小工具(二次编译)
  12. 网页设计Dreamweaver【2】
  13. 畅购9-Spring Security Oauth2 JWT
  14. 调用win api将指定名称的打印机设置为默认打印机
  15. 成长为 iOS 大 V 的秘密
  16. 华硕主板破Linux密码,解决华硕主板常见故障现象及方法
  17. 追爱系列电影电视剧书籍
  18. mcp2515 linux 设备树,MCP2515在Hi3521D上的调试
  19. 如何设计帮助中心才能真正地帮助客户解决问题?
  20. STRAIGHT之基频提取

热门文章

  1. 从“数学归纳法”到理解“递归算法”
  2. js---开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适(身高:cm)
  3. 【USACO题库】3.2.3 Spinning Wheels纺车的轮子
  4. Android自定控件之动画总结(一)
  5. 特斯拉盘初大跌5.61% 早前推出基础款Model 3
  6. EXCEL模糊查找而不是精确查找,如何在多个单元格内查询是否包含某个字符? 不用find(),而用countif(,“*“F3“*“)
  7. 联诚发LED屏震撼亮相周杰伦新加坡演唱会!
  8. 推荐给您最好的一本Docker书
  9. 主流WEB开发语言简单对比
  10. aplication.properties配置