gpt4 book ai didi

Mysql order by on column with unicode characters

转载 作者:可可西里 更新时间:2023-11-01 07:22:48 26 4
gpt4 key购买 nike

我在 mysql 表上运行一个选择查询,并试图按表中的“名称”列对其进行排序。
name 列包含英文字符名称和带有拉丁字符的名称,如 â.
我遇到了以下问题。
我运行的查询返回按以下方式排序的结果,即
例如:如果名称包含“archer”、“aaakash”、“â hayden”、“bourne”、“jason”
查询返回的结果排序如下
“aaakash”、“archer”、“â hayden”、“bourne”、“jason”

但是我想根据 unicode 代码点(如下所示)对其进行排序
“aaakash”、“archer”、“bourne”、“jason”、“â hayden”

(查看â hayden在命令中位置的不同)
如何根据字符在 unicode 字符集中的位置对结果进行排序?

最佳答案

However I want to order it based on unicode code points (like below)

要使用 unicode 代码点进行排序,您可能需要使用 utf8_bin 排序规则。

准确地说,_bin 后缀表示按每个字符的二进制表示排序。


要在订购时覆盖默认排序规则,您将使用 ORDER BY ... COLLATE :

解释文档:

SELECT k
FROM t1
ORDER BY k COLLATE utf8_bin;

如果您的文本列使用 utf8 编码,您将必须 CONVERT它:

SELECT k
FROM t1
ORDER BY CONVERT(k USING utf8) COLLATE utf8_bin;

<子>请注意,我在这里使用 utf8 作为示例,因为这是最常见的 Unicode 编码。但是你的 MySQL 服务器可能支持其他 Unicode 编码,比如 ucs2 (“UTF-16”)。

关于Mysql order by on column with unicode characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210189/

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