gpt4 book ai didi

ruby-on-rails - 如何使用指定的语言环境对 sqlite3 中的文本进行排序?

转载 作者:IT王子 更新时间:2023-10-29 06:18:36 24 4
gpt4 key购买 nike

默认情况下,Sqlite3 仅按 ascii 字母排序。我试图查看谷歌,但我唯一找到的是关于排序规则的信息。 Sqlite3 只有NOCASERTRIMBIARY 归类。如何添加对特定语言环境的支持?(我在 Rails 应用程序中使用它)

最佳答案

我接受了 Doug Currie 的回答,但我想添加一些“算法”如何去做,因为 sqlite3 文档非常奇怪(至少对我而言)。

好的,我们有 sqlite3,现在:

  1. Download ICU extension for sqlite

  2. 编译它:

    gcc -shared icu.c `icu-config --ldflags` -o libSqliteIcu.so

    它适用于 Linux。我还需要安装额外的 ICU 开发包:

    sudo apt-get install libicu-dev

    我正在研究 64 位架构,但我遇到了 __relocation R_X86_64_32S__ 错误(不管它是什么意思:)。 GCC 建议将 -fPIC 添加到编译选项中,这很有帮助。

  3. 运行 sqlite3。我们可以使用命令加载扩展:

    .load './libSqliteIcu.so'

    假设在当前目录下,我们也可以指定整个路径。

  4. 创建新的排序规则:

    SELECT icu_load_collation('pl_PL', 'POLISH');

    第一个参数是所需的区域设置,第二个参数是它(可以是任何内容)。

  5. 现在我们可以使用新的语言环境对数据进行排序:

    SELECT * FROM some_table ORDER BY name COLLATE POLISH;

    而且不区分大小写!

关于ruby-on-rails - 如何使用指定的语言环境对 sqlite3 中的文本进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/611459/

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