文章目录

  • 官方API
  • 简介
  • 使用方法
    • 设置级别及其优先级
    • 排序规则命名约定
    • 查询排序相关

官方API

COLLATE API

简介

COLLATE:排序规则。通常是和数据编码(CHARSET)相关的,字符串的物理存储由排序规则控制。
COLLATE是一个子句,可应用于数据库定义或列定义以定义排序规则,或应用于字符串表达式以应用排序规则投影.
可以用来比较一些复杂排序。如VARCHAR,CHAR,TEXT类型,不区分大小写等的列,都需要有一个COLLATE类型来告知MySQL如何对该列进行排序和比较。简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE条件中大于小于号筛选出来的结果,会影响DISTINCTGROUP BYHAVING语句的查询结果,会影响任意查询排序的结果。

使用方法

设置级别及其优先级

设置COLLATE可以在示例级别、库级别、表级别、列级别、以及SQL指定。

#库级别
CREATE DATABASE <db_name> DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
#表级别
CREATE TABLE(
...
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
#列级别
#如果列级别没有设置CHARSET和COLATE,则列级别会继承表级别的CHARSET与COLLATE。
CREATE TABLE (
`field1` VARCHAR(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
……
) ……

排序规则命名约定

命名约定

后缀 含义
_as 口音敏感
_cs 区分大小写
_bin 指定使用向后兼容的二进制排序顺序

查询排序相关

#查询所有的字符集
SHOW CHARACTER SET;
#查询所有的排序集
SHOW COLLATION;
#查询'utf8mb4'编码时可用的排序集
SHOW COLLATION WHERE CHARSET = 'utf8mb4';#举例:名称根据中文排序(不考虑多音字)
#升序
SELECT * FROM TABLE_NAME ORDER BY CONVERT(NAME USING GBK) COLLATE GBK_CHINESE_CI ASC
#降序
SELECT * FROM TABLE_NAME ORDER BY CONVERT(NAME USING GBK) COLLATE GBK_CHINESE_CI DESC

MySQL排序规则:COLLATE 及中文排序相关推荐

  1. oracle mysql 中文排序规则_ORACLE对中文排序性能优化

    Oracle提供了以下类型的排序方式:(1)二进制排序(2)单语言形式排序(3)多语言形式排序 使用二进制排序排序字符数据的一种方法是基于字符的数值定义的字符编码方案.这就是所谓的二进制排序.二进制排 ...

  2. mysql数据库修改列排序规则_更改数据库排序规则

    在SQLServer2008R2版本及以上,我们选择的都是默认安装,所以在创建数据库的时候,服务器默认选择的排序规则是一个SQL_Latin1_General_CP1_CI_AS排序规则,这样在向数据 ...

  3. MySQL的排序规则COLLATE

    COLLATE的作用 本质上MySQL是通过COLLATE取值决定字符串运算是否大小写敏感,以及如何对该列进行排序和比较.简而言之,COLLATE会影响到ORDER BY语句的顺序,会影响到WHERE ...

  4. linux中修改mysql排序规则_MySQL中的排序规则

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

  5. mysql字符集的排序规则_MySql字符集与排序规则详解

    前段时间往MySQL中存入emoji表情或生僻字.繁体字时,报错无法添加,研究后发现这是字符集编码的问题,今天就来分析一下各个字符集与排序规则 一.字符集 先说字符,字符是各种文字和符号的总称,包括各 ...

  6. mysql查看字符排序规则_Mysql 字符集及排序规则

    原文: Mysql 字符集及排序规则 一.字符集 字符集:就是用来定义字符在数据库中的编码的集合. 常见的字符集:utf8.Unicode.GBK.GB2312(支持中文).ASCCI(不支持中文) ...

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

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

  8. mysql字符集排序规则_Mysql 字符集及排序规则

    一.字符集 字符集:就是用来定义字符在数据库中的编码的集合. 常见的字符集:utf8.Unicode.GBK.GB2312(支持中文).ASCCI(不支持中文) 二.字符集排序规则 作者本人用的是ut ...

  9. mysql gbk排序规则_Mysql 字符集及排序规则

    一.字符集 字符集:就是用来定义字符在数据库中的编码的集合. 常见的字符集:utf8.Unicode.GBK.GB2312(支持中文).ASCCI(不支持中文) 二.字符集排序规则 作者本人用的是ut ...

最新文章

  1. python解压zip文件_Python中最快解压zip文件的方法
  2. 官方文档,才是正途-docker-compose
  3. Gitea 1.7.6 发布,一键部署的自助 Git 服务
  4. MyEclipse快捷键大全(绝对全)
  5. linux中使用net方式连接网络,如何使用 Netplan 从终端连接到无线网络?
  6. angularJs 跨控制器与跨页面传值
  7. cassandra本地连接失败_本地网络发现失败的解决方法连接到OS X中的服务器的问题 | MOS86...
  8. Java Stream(流)的分类, 四大基本流的介绍
  9. 南工程计算机学院贴吧,【计算机工程学院答疑转帖】
  10. ajax实现浏览器前进后退-location.hash与模拟iframe
  11. Vue脚手架搭建简单步骤
  12. JavaScript事件冒泡简介及应用
  13. Curator Zookeeper分布式锁
  14. Python的优势和劣势
  15. ArcMap(ArcGIS)批量裁剪图片【超详细】
  16. 移动开发技术(Android)——实验8 SQLite数据库的使用
  17. 国内邮箱有哪些?vip163微信邮箱登录简单吗?
  18. Appium----基于Ubuntu系统安装个人版免费的Android模拟器Genymotion模拟器
  19. 虚拟机中新增磁盘空间并开机自动挂载
  20. [软件工程] 面向对象分析

热门文章

  1. IDEA 2022.01 安装教程
  2. RT Thread根据开发板制作BSP方法
  3. 我们如何方便判断我们当前电脑显卡是否支持GPU硬件加速(硬解码),图解DXVA Checker详细使用方法介绍
  4. TI C66x DSP 系统events及其应用 - 5.2(PDSP配置)
  5. activiti审批历史查询
  6. excel+notepad++ 对比数据
  7. sh文件没有权限运行
  8. 面授与在线授课的利弊分析
  9. mac 安全偏好_Mac更安全,还可以讲其他笑话
  10. Linux中Vi编辑器之简单常用命令