gpt4 book ai didi

postgresql - 字符串排序顺序(LC_COLLATE 和 LC_CTYPE)

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

显然 PostgreSQL 从 8.4 版本开始允许每个数据库使用不同的语言环境所以我去文档阅读有关语言环境的信息 (http://www.postgresql.org/docs/8.4/static/locale.html)。

字符串排序顺序是我特别感兴趣的(我希望字符串排序为 'A a b c D d' 而不是 'A B C ... Z a b c')。

问题一:是否只需要在创建数据库时设置LC_COLLATE(String sort order)?

我还阅读了 LC_CTYPE(字符分类(什么是字母?它的大写等价物?))

问题 2:谁能解释一下这是什么意思?

最佳答案

您描述的排序顺序是大多数语言环境中的标准顺序。自己试试吧:

SELECT regexp_split_to_table('D d a A c b', ' ') ORDER BY 1;

当您使用 initdb 初始化数据库集群时您可以使用 --locale=some_locale 选择语言环境。在我的例子中是 --locale=de_AT.UTF-8。如果您未指定任何内容,则语言环境是从环境中继承的 - 将使用您当前的系统语言环境。

集群的模板数据库将设置为该语言环境。当您创建新数据库时,它会继承模板中的设置。通常您不必担心任何事情,一切正常。

阅读关于 CREATE DATABASE 的章节更多。如果您想使用索引加快文本搜索,请务必阅读 operator classes ,还有。
所有指向 8.4 版的链接,正如您特别要求的那样。


PostgreSQL 9.1 或更高版本中,有 collation support允许更灵活地使用排序规则:

The collation feature allows specifying the sort order and character classification behavior of data per-column, or even per-operation. This alleviates the restriction that the LC_COLLATE and LC_CTYPE settings of a database cannot be changed after its creation.

关于postgresql - 字符串排序顺序(LC_COLLATE 和 LC_CTYPE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7992294/

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