gpt4 book ai didi

php - 与 utf8_general_ci 和 utf8_unicode_ci 混淆

转载 作者:行者123 更新时间:2023-11-29 02:54:36 25 4
gpt4 key购买 nike

mysql服务器排序规则是my.cnf中的utf8_general_ci

我正在为数据库使用 utf8_general_ci 归类,现在我已经使用 utf8_unicode_ci 归类创建了几个表同一个数据库。

现在我想将 utf8_unicode_ci 用于服务器/数据库/表/字段。为了首先做到这一点,我需要将服务器的排序规则更改为 utf8_unicode_ci然后是数据库、表和字段。

我的问题是我已经使用 utf8_general_ci 将数据存储在表中,我是否可以保持原样而不对数据做任何操作,或者我是否需要进行任何类型的转换。

另一件事是,如您所见,服务器级别的排序规则是 utf8_general_ci,但表和字段级别的排序规则是 utf8_unicode_ci,因此当我从这些表中存储和检索数据时,根据我当前的设置,mysql 使用什么排序规则?

谢谢。

最佳答案

“服务器级别”排序规则毫无意义。
服务器和数据库级别的字符集(和排序规则)仅用作表(和数据库)创建的默认值。

  • 比如说,如果您在创建数据库时没有提供任何排序​​规则,它将使用服务器排序规则创建。但是如果你这样做了 - 将使用提供的一个并且服务器整理根本不会干扰。
  • 如果您没有在表定义中提供任何排序​​规则,则将使用数据库排序规则创建表。但如果您这样做 - 将使用提供的一个,服务器和数据库整理都不会影响您的查询。

只有表和字段级别的排序规则才是重要的。

if i already have data in tables stored using utf8_general_ci, can i just keep as it is

是的。您的数据库中可以有包含任何字符集的表。

关于php - 与 utf8_general_ci 和 utf8_unicode_ci 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32062985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com