首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mysql数据库的排序规则

MySQL数据库的排序规则是用于定义在比较和排序数据时字符集的规则。排序规则指定了不同字符集下字符的比较和排序方式,包括大小写敏感/不敏感、重音符号处理、特殊字符处理等。

MySQL提供了多种排序规则,每个排序规则由两个部分组成:字符集和排序规则名称。常见的排序规则有以下几种:

  1. utf8_general_ci:Unicode字符集下的通用排序规则,不区分大小写,对于非拉丁字符也会进行特殊处理。
  2. utf8_bin:Unicode字符集下的二进制排序规则,区分大小写和特殊字符,按字符的二进制值进行比较排序。
  3. utf8_unicode_ci:Unicode字符集下的Unicode排序规则,不区分大小写,对于非拉丁字符采用Unicode标准排序。
  4. utf8mb4_general_ci:utf8mb4字符集下的通用排序规则,不区分大小写,适用于支持更多Unicode字符的场景。
  5. utf8mb4_bin:utf8mb4字符集下的二进制排序规则,区分大小写和特殊字符,按字符的二进制值进行比较排序。

MySQL的排序规则可在创建数据库或表时指定,也可以在查询时临时指定。对于已存在的数据库或表,可以通过ALTER语句修改排序规则。

适用场景: 排序规则的选择应根据具体业务需求来决定。一般而言,如果对于排序不敏感且需要支持多种语言的场景,可以选择通用的排序规则(如utf8_general_ci)。如果需要区分大小写或特殊字符,并且仅需要支持拉丁字符,可以选择二进制排序规则(如utf8_bin)。

推荐腾讯云相关产品和产品介绍链接地址:

  • 云数据库 MySQL:https://cloud.tencent.com/product/cdb-mysql
  • 云数据库 MariaDB:https://cloud.tencent.com/product/cdb-mariadb
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MySQL 排序规则

排序规则是一组用于比较字符集中字符规则。 每个 MySQL 字符集可以支持一个或者多个排序规则,用于定义每个字符比较规则,包括是否区分大小写,是否区分重音等。...2.支持排序规则 MySQL 使用 SHOW COLLATION 语句查看各种字符集支持排序规则: SHOW COLLATION [LIKE 'pattern' | WHERE expr]...这是MySQL内部使用标识符。 Default:是否为默认排序规则。如果是默认排序规则,将显示“Yes”;否则,显示“”No”。 Compiled:是否已编译排序规则。...如果没有指定排序规则MySQL 会基于字符集设置一个默认排序规则。...4.查看排序规则 查看数据库排序规则 您可以查询 information_schema 数据库 SCHEMATA 视图来查看数据库排序规则

43720

MySQL order by不同排序规则

explain语句执行结果中,Extra项中含有Using filesort表示需要排序MySQL会给每个线程分配一块内存用于排序,称为sort_buffer。...当排序字段较多时,内存可放下行数很少,需要分成很多个临时文件,排序性能很差,即MySQL认为排序单行长度太大会使用rowid排序。...对sort_buffer中数据按order by条件进行排序。 遍历排序结果,取数据返回。...控制用于排序行数据长度,单行长度超过该值,MySQL更换排序算法 SET max_length_for_sort_data = 16; 使用索引排序 语句执行流程: 从索引找到第一个满足where...使用覆盖索引时,explain语句Extra字段会多了个"Using index",表示使用索引覆盖。 MySQL一个设计思想:如果内存够,就要多利用内存,尽量减少磁盘访问。

31140
  • MySQL创建数据库指定编码和排序规则mysql数据库密码重置

    MySQL 数据库基本使用 mysql 数据库创建与密码重置 ① 数据库登录与密码设置 ② 数据库创建并指定编码和排序规则 ③ 切换数据库 ④ 删除数据库 ⑤ 创建用户 ⑥ 给用户授权 mysql 数据库创建与密码重置...① 数据库登录与密码设置 root 用户登录:mysql -u root -p root 用户重置密码: alter user 'root'@'localhost' identified by 'xxx...'; 退出:exit; ② 数据库创建并指定编码和排序规则 创建数据库 sonic 并指定排序编码和排序规则: create database sonic default character...set utf8 collate utf8_general_ci; ③ 切换数据库 切换数据库 sonic:use sonic ④ 删除数据库 删除数据库 sonic:drop database...⑥ 给用户授权 grant all privileges on 用户名.* to "用户名"@"localhost" 授予全部权,localhost 代表本地,% 代表所有 ip,当然也可以输入单独

    6.5K20

    修改MySQL varchar类型字段排序规则

    记录一个在工作中遇到问题,也不算是问题,为是找一种简便方法批量修改数据表字段排序规则,在MySQL中叫collation,常常和编码CHARACTER一起出现。...operation '=',主要是因为迁移数据库时候没有把collation规则及时修改过来。...网上搜到解决办法,都提到了修改数据表级别collation排序规则。...由于需要修改字段太多了,手工修改肯定是费时费力。自然也想到了用脚本方式批量修改,但是发现这种通过查找MySQL信息表、过滤、拼接生成批量修改语句太好用了,而且还能做到针对varchar类型。...= 'utf8_unicode_ci' ); database需要改成实际数据库名字。需要注意是,如果要修改字段存在外键关系,那就要小心处理,删除外键,修改collation后再把外键关系加回来。

    4.7K30

    MySQL 字符集与排序规则

    utf8 MySQL 在创立时使用字符集就是 utf8。首先它能存储下大部分中文汉字,对于我们正常使用肯定是绰绰有余。...它代表着排序规则。...概念 MySQl排序规则(collation),一般指对字符集中字符串之间比较、排序制定规则, MySLQ排序规则特征: o 两个不同字符集不能有相同校对规则; o 每个字符集有一个默认校对规则...其实对于排序规则细节问题,我们关注较少,反而对排序规则中是否涉及大小写敏感关注较多。 例如,系统使用 utf8 字符集,若使用 utf8_bin 排序规则,执行 SQL 查询时区分大小写。...使用 对于一种语言仅当使用 utf8_unicode_ci 排序不好时,才执行与具体语言相关utf8字符集 校对规则

    2.4K20

    数据库PostrageSQL-排序规则支持

    如果该表达式是一个常量,排序规则就是该常量数据类型默认排序规则。更复杂表达式排序规则根据其输入排序规则得来,如下所述: 一个表达式排序规则可以是“默认”排序规则,它表示数据库区域设置。...一个表达式排序规则也可能是不确定。在这种情况下,排序操作和其他需要知道排序规则操作会失败。 当数据库系统必须要执行一次排序或者字符分类时,它使用输入表达式排序规则。...新操作系统语言环境也可以使用 pg_import_system_collations() 函数集中导入。 在任何特定数据库中,只有使用数据库编码排序规则是令人感兴趣。...我们推荐使用被剥离排序规则名,因为在你决定要更改到另一个数据库编码时需要做事情更少。但是要注意default、C和POSIX排序规则在使用时可以不考虑数据库编码。...由于预定义libc排序规则已经包含了数据库实例初始化时在操作系统中定义所有排序规则, 因此通常不需要手动创建新排序规则

    1.5K20

    技术分享 | MySQL--测试--排序规则 collation

    客户反应查询返回结果不符合预期,读取时想要实现⼤⼩写区分;简介:排序规则 collation 是⼀个字符集字符进⾏⽐较⼀组规则;⾄少会有两个规则: 1) 是否区分⼤⼩写; 2) 编码;常⽤规则是是否区分...字符集和排序规则默认选择:如果你仅指定字符集,⽽不指定排序规则,则排序规则为字符集默认排序规则;如果你仅指定排序规则,不指定字符集,则字符集为排序规则对应字符集;例外项⻅: "设置对象字符集和排序规则...COLLATION WHERE Charset = 'utf8mb4'; -- 这⾥utf8mb4是具体字符集查看数据库默认字符集和排序规则:USE db_name;SELECT @@character_set_database...,则使⽤数据库中声明作为默认值;如果load data时未带上character set⼦句,则使⽤character_set_database作为默认值;如果在创建routine时未带上字符集和排序规则...,则使⽤数据库中声明作为默认值;table建表时CHARACTER SET ⼦句;建表时COLLATE ⼦句;如果未在单个列上指定字符集和排序规则,则将表中声明作为默认值;column建表时字段定义上

    1.2K30

    MySQL排序规则导致无法命中索引问题

    背景 因公司数据库设计不方便展示,语句使用以下数据表演示现象。...原因 在SQL关联条件中,关联字段类型相同,并不是隐式类型转换问题导致无法命中索引,那么我们开始排查两表字符集、排序规则是否一致。...user表设计: vehicle表设计: 两表字符集均为utf8mb4,不会出现因字符集不同导致隐式转换问题,那么对比排序规则发现两表排序规则是不同排序规则不一致时,MySQL同样会进行强制类型转换...解决方案 方案一:使用数据库管理工具或alter table语句修改排序规则。...方案二:将原表重命名备份, 修改原建表语句为正确排序规则,执行建表语句,而后使用select into语句将旧表数据恢复到新表。

    31430

    MySQL原理 - 字符集与排序规则

    任何计算机存储数据,都需要字符集,因为计算机存储数据其实都是二进制编码,将一个个字符,映射到对应二进制编码这个映射就是字符编码(字符集)。这些字符如何排序呢?决定字符排序规则就是排序规则。...= 'utf8mb4_general_ci'; Query OK, 0 rows affected (0.00 sec) 库级别 创建数据库时候,可以指定字符集还有排序规则。...查看当前数据库字符集还有排序规则则是通过use命令指定数据库之后,查看character_set_database变量以及collation_database来实现: mysql> show variables...表级别 可以在创建时指定字符集合排序规则,不指定的话,用数据库字符集还有排序规则,也可以修改字符集和排序规则。...列级别 可以在创建表时候,指定不同列有不同字符集和排序规则,也可以修改列字符集和排序规则mysql> create table test (name varchar(32) character

    3.1K10

    MySQL字符集大揭秘:排序规则决定你数据如何排序

    字符集和排序规则数据库选择不仅关系到数据存储和检索,还直接影响到数据正确性和查询效率。通过本文,你将更加深刻地理解MySQL字符集与排序规则之间关系,并掌握如何正确应用它们。...它决定了可以使用哪些字符,但并没有规定它们排序方式。 排序规则(Collation):排序规则决定了字符在数据库排序顺序以及比较行为。...MySQL支持字符集和排序规则 MySQL支持多种字符集和排序规则,不同字符集和排序规则适用于不同语言、文化和应用场景。...例如,对于UTF8字符集,可以有不同排序规则,如utf8generalci和utf8_bin。 排序规则选择影响了数据库中文本数据排序和比较行为。...选择适当字符集和排序规则对于确保数据库数据正确性和查询性能至关重要。希望本文能帮助你更好地理解MySQL字符集与排序规则之间关系,并在实际应用中正确选择和配置它们,以满足你应用需求。

    1.3K20

    MySql自定义排序规则--Java学习网

    locate) FIELD函数 格式:field(value,str1,str2,str3,str4),value与str1、str2、str3、str4比较,返回1、2、3、4,如遇到null或者不在列表中数据则返回...1 6 id uname passwd 4 dd dd 5 ee ee 3 cc cc 2 bb bb 1 aa aa 6 ff ff INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段内容中位置...locate( id, ’2,3,5,4′ ) DESC 结果显示顺序:4 5 3 2 1 6 4 dd dd 5 ee ee 3 cc cc 2 bb bb 1 aa aa 6 ff ff 如我想要查找数据库...ID顺序首先是(2,3,5,4)然后在是其它ID顺序,你首先要把他降序排即(4 5 3 2),然后在SELECT * FROM user order by field(id,4,5,3,2) DESC...ORDER BY INSTR( ’4,5,3,2′, id ) DESC 或用 SELECT * FROM user ORDER BY locate( id, ’4,5,3,2′ ) DESC 就得到你想要结果了

    1.1K20

    mysql数据库排序与分页)

    排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序 DESC(descend):降序 ORDER BY 子句在SELECT语句结尾。...在对多列进行排序时候,首先排序第一列必须有相同列值,才会对第二列进行排序。如果第一列数据中所有值都是唯一,将不再对第二列进行排序。...2.2 实现规则 分页原理 所谓分页显示,就是将数据库结果集,一段一段显示出来需要条件。...MySQL中使用 LIMIT 实现分页 格式: LIMIT [位置偏移量,] 行数 第一个“位置偏移量”参数指示MySQL从哪一行开始显示,是一个可选参数,如果不指定“位置偏移量”,将会从表中第一条记录开始...SQLite 等数据库中使用, 表示分页。

    12210

    【重学MySQL】四、关系型数据库设计规则

    【重学MySQL】四、关系型数据库设计规则 表、记录、字段设计规则 关系型数据库设计中,表、记录、字段设计是至关重要,它们直接决定了数据库结构、性能和可维护性....表设计规则 表名规范:表名应具有描述性,能够反映表中存储数据内容。同时,表名应遵循一定命名规范,如使用小写字母、下划线分隔单词等,以确保在不同数据库系统中一致性和可读性。...外键是另一个表主键副本,用于在两个表之间建立联系。外键使用有助于维护数据完整性和一致性。 记录设计规则 记录唯一性:表中每一条记录都应是唯一,这通常通过主键来保证。...这有助于在插入新记录时自动填充某些字段值,减少数据录入工作量。 索引设置:对于经常用于查询、排序和分组等操作字段,应设置索引。...综上所述,关系型数据库设计中表、记录、字段设计规则是多方面的,包括命名规范、数据类型选择、约束设置、索引优化等。遵循这些规则有助于设计出结构清晰、性能优越、易于维护数据库系统。

    5610

    写final域排序规则

    假设线程B读对象引用与读对象成员域之间没有重排序(首先说明重排序规则1),下图是一种可能执行时序: 图片.png   在上图中,写普通域操作被编译器重排序到了构造函数之外,读线程B错误读取了普通变量...而写final域操作,被写final域排序规则“限定”在了构造函数之内,读线程B正确读取了final变量赋值之后值。...读final域排序规则   初次读对象引用与初次读该对象包含final域,这两个操作之间存在间接依赖关系。由于编译器遵守间接依赖关系,因此编译器不会重排序这两个操作。...而读final域排序规则会把读对象final域操作“限定”在读对象引用之后,此时该final域已经被A线程初始化过了,这是一个正确读取操作。   ...读final域排序规则可以确保:在读一个对象final域之前,一定会先读包含这个final域对象引用。

    50600
    领券