MySQL排序规则之utf8mb4_0900_ai_ci

这篇具有很好参考价值的文章主要介绍了MySQL排序规则之utf8mb4_0900_ai_ci。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. utf8mb4_0900_ai_ci是什么?如何理解?

是什么?

utf8mb4_0900_ai_ci是mysql8.0之后的数据库的一种排序规则(collation)。

如何理解?

  1. utf8mb4,这个名字许多人大概熟悉。如今️✈️♥️emoji表情已经大量使用,但MySQL之前的的字符集(character set)是utf8(更准确的名字是utf8mb3,一个字符最多使用3个字节来存储),只能存储编码值从0x000到0xFFFF之间的字符。然而,emoji表情字符的码值超过了0xFFFF,按照UTF-8规范,存储时需要用4个字节。正因为如此,MySQL才提供了utf8mb4的字符集。如果把数据库表的字符集设定为utf8mb4,就可以正常存储包含表情字符的文本了。
  2. 中间的0900,它对应的是Unicode 9.0的规范。要知道,Unicode规范是在不断更新的,每次更新既包括扩充,也包括修正。比如6.0版新加入了222个中日韩统一表义字符(CJK Unified Ideographs),7.0版加入了俄国货币卢布的符号等等。
  3. 最后两部分_ai_ci,ai表示accent insensitivity,也就是“不区分音调”,而ci表示case insensitivity,也就是“不区分大小写”。

2. utf8mb4_0900_ai_ci有什么优点,为什么要用它?

utf8mb4_0900_ai_ci是针对Unicode字符集的一种扩展,支持存储和处理更广泛的字符。
使用utf8mb4_0900_ai_ci的一些优点和原因:

  1. 支持更多的字符:utf8mb4_0900_ai_ci字符集支持存储和处理包括表情符号、特殊符号和罕见字符在内的更多Unicode字符。相比之前的字符集,它可以更全面地满足多语言和多字符需求。
  2. 表情符号支持:随着表情符号在现代通信中的广泛使用,使用utf8mb4_0900_ai_ci字符集可以确保数据库能够正确存储和处理这些表情符号。
  3. 排序规则:utf8mb4_0900_ai_ci排序规则是根据Unicode标准制定的,它提供了更准确和一致的排序方式。这对于需要对文本进行排序和比较的应用程序非常重要,尤其是涉及多语言的场景。
  4. 兼容性:utf8mb4_0900_ai_ci字符集在MySQL 8.0.0版本引入,是MySQL官方推荐的字符集。使用它可以确保与最新版本的MySQL兼容,并且能够利用MySQL提供的最新功能和改进。

总之,utf8mb4_0900_ai_ci字符集和排序规则提供了更广泛的字符支持和更准确的排序方式,适用于需要处理多语言、表情符号和特殊字符的应用程序。它是与最新版本的MySQL兼容的推荐选择。

3. 如何使用utf8mb4_0900_ai_ci?

要在MySQL中使用utf8mb4_0900_ai_ci字符集和排序规则,需要进行以下步骤:

  1. 创建数据库时指定字符集和排序规则:
CREATE DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

这将创建一个名为your_database_name的数据库,并将其字符集设置为utf8mb4,排序规则设置为utf8mb4_0900_ai_ci
2. 在创建表时指定字符集和排序规则:

CREATE TABLE your_table_name (
  column1 datatype CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,
  column2 datatype CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci,
  ...
);

在创建表时,为每个需要存储utf8mb4字符集的列指定字符集和排序规则。将datatype替换为相应的数据类型。
3. 修改现有表的字符集和排序规则:

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

使用上述语句,将现有表your_table_name的字符集和排序规则修改为utf8mb4utf8mb4_0900_ai_ci

请注意,执行上述操作可能会导致数据丢失或格式变化。在进行任何更改之前,请务必备份重要的数据。

确保在MySQL版本8.0.0或更高版本中使用utf8mb4_0900_ai_ci字符集和排序规则,因为早期版本的MySQL可能不支持该字符集和排序规则。文章来源地址https://www.toymoban.com/news/detail-770963.html

到了这里,关于MySQL排序规则之utf8mb4_0900_ai_ci的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mysql设置了utf8mb4,为什么还有utf8mb4_general_ci和utf8mb4_0900_ai_ci?

    前段时间,遇到一个mysql的问题,我仔细看看报错信息,应该是MySQL数据库报出来的,大意是说:collation不兼容,一个是 utf8mb4_0900_ai_ci,另一个是utf8mb4_general_ci。 utf8mb4_general_ci这玩意儿我见过,是针对utf8mb4编码的collation,但是utf8mb4_0900_ai_ci是啥,我也没见过。 于是我问他,

    2024年02月10日
    浏览(59)
  • utf8mb4的utf8mb4_0900_ai_ci如何理解?mysql新建库如何选择字符集?

    MySQL字符集详解_永远是少年啊的博客-CSDN博客_mysql 字符集 今天继续给大家介绍MySQL相关知识,本文主要内容是MySQL字符集。一、MySQL字符集简介二、查看和设置MySQL字符集(一)查看当前字符集设置(二)更改默认字符集(三)在创建表时指定字符集三、更改MySQL字符集 https:

    2024年02月09日
    浏览(231)
  • mysql出现错误 ‘utf8mb4_0900_ai_ci‘ 或 ‘utf8_0900_ai_ci‘

    1:在我们使用mysql数据库,进行日常开发的过程中,会经常进行导入导出的操作 2:在使用mysql工具或者使用第三方数据库管理工具,进行数据库导入运行SQL脚本的时候,出现这种错误。 或者 \\\"utf8_0900_ai_ci\\\" 错误 ,均是数据库版本从高版本导入到低版本导致的。 解决方案有两

    2024年02月13日
    浏览(45)
  • MySQL执行异常: Illegal mix of collations (utf8mb4_0900_ai_ci IMPLICIT) and (utf8mb4_general_ci...

    Mysql生产库存储过程升级后执行报错:SQL错误( 1267 ) : Illegal mix of collations (utf8mb4_0900_ai _ci IMPLICIT) and (utf8mb4_general_ci IMPLICIT) for operation ‘=’。根据错误提示,报错原因应该是=号两侧内容的排序规则(collation)不一致导致的报错。 产生这个问题一种情况是两个字段的排序规则不

    2024年02月16日
    浏览(38)
  • MySQL提示Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)

    根据错误提示,报错原因应该是=号两侧内容的排序规则(collation)不一致导致的报错。 原sql中出现了: status !=\\\'取消\\\' 原因是:表字段的排序规则为utf8mb4_0900_ai _ci,而字面常量是排序规则是utf8mb4_general_ci  collation_connection用于字面常量比较,如果字段比较会使用字段或表声明

    2024年01月18日
    浏览(44)
  • MySQL报错 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

    MySQL报错如下 原因 : 我这里SQL文件对应的MySQL版本是8.0版本,我本地是5.7版本,高级往低级导入时 版本不兼容 ,引发了1273错误。 解决方法 : 将文件中的所有 utf8mb4_0900_ai_ci 替换为 utf8_general_ci ,同时将 utf8mb4 替换为 utf8 。

    2024年02月11日
    浏览(45)
  • Docker拉取mysql及utf8mb4_0900_ai_ci字符集解说

    概要 主旨是为了研究mysql里的字符集,在实践中发现中文的排序顺序有点问题,为了能让中文排序正常,尝试更改各种字符集做测试。 Mysql官方版本8.0以前默认的应该是latin1,8.0后默认为utf8mb4了 Docker安装Mysql docker拉取Mysql官方镜像站地址:https://hub.docker.com/_/mysql docker可以一键

    2024年01月22日
    浏览(39)
  • 【MySQL异常解决】MySQL执行SQL文件出现【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解决方案

    从服务器MySQL中导出数据为SQL执行脚本后,在本地电脑执行导出的SQL脚本, 报错: Unknown collation ‘utf8mb4_0900_ai_ci‘ 打开SQL脚本,查看 utf8mb4_0900_ai_ci ,这是字段的字符集。 1、MySQL 版本不一样; 2、utf8mb4_0900_ai_ci 在 MySQL 8 以下是不被支持的,检查发现本地数据库为5.7,

    2024年02月16日
    浏览(37)
  • Unknown collation: ‘utf8mb4_0900_ai_ci’的解决方法

    今天在用Navicat往mysql(5.7版本)导入sql文件时,出现Unknown collation: \\\'utf8mb4_0900_ai_ci’错误。 分析 出现这样的问题是原sql文件是mysql(8.0版本),高级往低级(5.7版本)导入时出现版本不兼容的情况。 解决 把文件中的所有的 utf8mb4_0900_ai_ci 替换为 utf8_general_ci 以及 utf8mb4 替换为

    2024年02月11日
    浏览(41)
  • 执行SQL文件出现【Unknown collation “utf8mb4_0900_ai_ci”】的解决方案

    从服务器MySQL中导出数据为SQL执行脚本后,在本地执行导出的SQL脚本。 报错:Unknown collation “utf8mb4_0900_ai_ci” 打开SQL脚本,查看 utf8mb4_0900_ai_ci ,这是字段的字符集。 1、MySQL 版本不一致。 2、字符集编码不支持。 1、升级 MySQL 数据库版本 将本地5.7版本的 MySQL数据库升

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包