- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在使用 MySQL 一段时间后,我第一次尝试使用 PostgreSQL 数据库。我的环境是与 cPanel 和 phpPgAdmin 共享主机。令我困惑的一件事是数据库整理。我的主机的 cPanel 始终创建数据库,其中 Encoding
、Collation
和 Character Type
设置为 UTF8
、分别是 en_US.UTF-8
和 en_US.UTF-8
。我似乎没有办法更改它,因为数据库是通过 cPanel 创建的,那里没有选项,根据这个答案,这些参数只能通过使用所需设置重新创建数据库来更改。
所以我想知道:这真的重要吗?如果排序规则设置为 en_us.UTF8,非英语甚至非拉丁字符串(例如俄语或希伯来语)会发生什么情况?他们将如何排序?
更新:我很困惑,因为在 MySQL 中我过去只选择 utf8mb4_unicode_ci 排序规则而不关心特定的语言。我想知道它与 PostgreSQL 中特定于国家语言的排序规则相比如何工作。
最佳答案
整理行为将取决于底层操作系统的语言环境支持。总的来说,我认为对于当前语言环境之外的字符,您应该期待相当“愚蠢”的排序,可能是通过 Unicode 代码点。可能是 default collatoin for the unicode collation algorithm .
我很难快速找到以不同方式整理的示例数据以进行测试。
但请注意,您可以使用 COLLATE
术语在每列或每个操作的基础上声明排序规则,例如
CREATE TABLE sometable(
...,
companyname text COLLATE "ru_RU",
...
);
或
SELECT *
FROM sometable
ORDER BY companyname COLLATE "ru_RU"
或
SELECT *
FROM sometable
WHERE companyname < 'Компания' COLLATE "ru_RU"
因此您不局限于数据库的排序规则。
(这样做确实是正确处理各种/混合语言数据的唯一方法,因为无论如何都没有一种正确的排序规则适用于所有数据)。
编辑显示示例:
test=> SHOW lc_collate;
lc_collate
------------
en_AU.utf8
(1 row)
test=> SELECT * FROM (VALUES ('z'),('aa')) x(y) ORDER BY y;
y
----
a
aa
z
(3 rows)
craig=> SELECT * FROM (VALUES ('z'),('aa')) x(y) ORDER BY y COLLATE "da_DK";
y
----
a
z
aa
(3 rows)
这也表明独立于语言的排序规则的概念完全是胡说八道,人们通常真正的意思是“类英语排序规则”或“按 Unicode 序号排序”(主要是类英语顺序)。
关于postgresql - 非英语语言的 en_us.UTF8 归类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928090/
我正在用 Python 编写一个 ETL 脚本,用于获取 CSV 文件中的数据、验证和清理数据以及根据某些规则对每一行进行分类或分类,最后将其加载到 postgresql 数据库中。 数据看起来像这样
我在做一个项目,想实现一个类似于 wordpress posts 表的 posts 表来存储页面内容。 所以我基本上复制了 wp_posts 表,它是 longtext 但是我注意到在整理下它有 ut
在使用 MySQL 一段时间后,我第一次尝试使用 PostgreSQL 数据库。我的环境是与 cPanel 和 phpPgAdmin 共享主机。令我困惑的一件事是数据库整理。我的主机的 cPanel
在一些指南的帮助下,我成功地使用 gcc 编译了 sqlite3 的 ICU 扩展并获得了 libSqliteIcu.so,没有显示任何错误。然后我将这个 lib 复制到/usr/lib 文件夹。之后
我搜索了一个 JQuery 插件,但没有成功,该插件能够根据其内容过滤 HTML 列表(li、div 或其他列表)。我发现了很多,但似乎没有一个支持 MySQL 中所谓的排序规则(当然在其他地方也是如
我正在尝试将我的一个数据库表从 utf8_general_ci 切换到 utf8mb4。 ALTER TABLE d4b80le1jha CONVERT TO CHARACTER SET utf8mb
我是一名优秀的程序员,十分优秀!