gpt4 book ai didi

带重音字符的 SQLite 排序列

转载 作者:行者123 更新时间:2023-12-03 15:34:16 28 4
gpt4 key购买 nike

我正在使用 SQLite 数据库和 PHP 开发一个网站。我正在运行 Windows (dev),我的生产环境应该是 *nix 平台。这是我的表的架构:

CREATE TABLE [animals](
[id] INTEGER NOT NULL UNIQUE,
[name] VARCHAR(50) NOT NULL
);

我想按名称(包含重音字符)动物进行排序。我的 SQL 查询是:

SELECT * FROM animals ORDER BY name DESC

然后我得到:

éléphant
tigre
renard
chien

而不是,

tigre
renard
éléphant
chien

我在网上搜索过。我试过了,

SELECT * FROM animals ORDER BY name COLLATE *binary|nocase|rtrim* DESC

但是我也遇到了同样的问题。我也试过了,

SELECT * FROM animals ORDER BY name COLLATE *localized|unicode* DESC

但我得到一个错误(要么是我的 SQLite 客户端崩溃,要么是 PHP 返回以下错误:no such collat​​ion sequence: UNICODE)。

Android 似乎有解决方案,但我运行的是 Windows,我的生产环境应该是 *nix 平台。

如何让我的动物以正确的方式分类?

最佳答案

默认情况下,SQLite 只有 ASCII 排序规则。

可以使用 ICU 扩展来获得 Unicode 支持,但 PHP 没有启用它。

但是你可以create your own collation并在 PHP 中实现比较。

关于带重音字符的 SQLite 排序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43228161/

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