utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则
Posted
技术标签:
【中文标题】utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则【英文标题】:utf8mb4_unicode_ci Selected in PhpMyAdmin but WordPress Tables using utf8mb4_unicode_520_ci Collation 【发布时间】:2019-02-12 07:25:38 【问题描述】:我在 phpMyAdmin 的两个选项中,在常规设置下的 服务器连接排序 和PhpMyAdmin 操作选项卡下的数据库 但是该数据库中属于 WordPress 博客的表正在使用 utf8mb4_unicode_520_ci 排序规则(可以在主窗口中看到,例如通过单击该数据库)
我的问题是,我选择了 utf8mb4_unicode_ci 但 Database for WordPress 博客正在使用数据库中的 utf8mb4_unicode_520_ci 表,这有什么坏事吗?该数据库中的所有表都使用 utf8mb4_unicode_520_ci。
1) 我是否应该在 PhpMyAdmin 中将选项从 utf8mb4_unicode_ci 更改为 utf8mb4_unicode_520_ci(在上面提到的两个地方)
2) 或者它没有任何不良影响,我应该保持原样。
希望得到此查询的答案。 感谢您的阅读。
【问题讨论】:
据我所知,排序规则会影响字符串比较。并且可以使数据库排序规则和表排序规则不同。但是,如果您比较具有不同排序规则的两个表,它可能会导致 weird result。实际上,使用utf8mb4_unicode_ci
的建议是在您开发自己的应用程序时,但由于它是 wordpress .. 如果不自己更改表格,我们无能为力 - 这反过来可能会破坏 wordpress..
WordPress 官方核心开发团队推荐使用 utf8mb4 源代码:make.wordpress.org/core/2015/04/02/the-utf8mb4-upgrade ...所以现在我应该保持原样吗?
嗨@Jack,问题是你的wordpress已经在使用utf8mb4_unicode_520_ci
排序规则,它有a bit of backward compatibility。而您分享的文章已经有 3 年历史了,并且是指旧的 wordpress 4.2。我相信最好保持原样 - 你的已经是 4.9 了,对吧?如果是,则无需担心。
是的,我安装了最新版本的 WP。
【参考方案1】:
在做CREATE TABLE ...
时,排序规则来自:
CREATE
明确声明排序规则,或者
默认为数据库的排序规则 (CREATE DATABASE ...
)
类似地,在声明列时,您可以显式或默认为TABLE's
设置。
我更喜欢明确,不让事情默认。
当数据库/表/列在CHARACTER SET
和/或COLLATION
上不一致时没有什么坏处。
在您使用 mysql 8.0 之前,utf8mb4_unicode_520_ci
是“最佳”排序规则。 (根据 Unicode 标准委员会最好。)
【讨论】:
以上是关于utf8mb4_unicode_ci 在 PhpMyAdmin 中选择,但 WordPress 表使用 utf8mb4_unicode_520_ci 排序规则的主要内容,如果未能解决你的问题,请参考以下文章
utf8mb4_unicode_ci 与 utf8mb4_bin
排序规则将 utf8mb4_unicode_ci 更改为 utf8mb4_general_ci
collation utf8mb4_unicode_ci 是啥意思
wordpress导入数据错误MySQL返回:#1273 – Unknown collation:’utf8mb4_unicode_ci’
操作“=”的排序规则(utf8mb4_unicode_ci,EXPLICIT)和(utf8_general_ci,COERCIBLE)的非法混合
SQLSTATE[42000]: Syntax error or access violation: 1253 COLLATION 'utf8mb4_unicode_ci' is no