Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
hiragana中日语单词的postgresql排序顺序_Postgresql_Sorting_Unicode - Fatal编程技术网

hiragana中日语单词的postgresql排序顺序

hiragana中日语单词的postgresql排序顺序,postgresql,sorting,unicode,Postgresql,Sorting,Unicode,我有一个9.6.2版本的postgresql数据库,编码为UTF8,排序规则为en_GB.UTF8。我的一个表中有一个字段仅包含日语平假名字符。问题是通过SQL以正常方式对该字段进行排序。。。按[字段名称]排序。。。至少不会产生我期望的结果。相反,排序就好像行首先按字段内容的长度排序,然后才按字符排序一样。例如,与其得到: あめ うえ おとこ かわり き し ひ 如我所料,订单如下: き し ひ あめ うえ おとこ かわり 我缺少什么?尝试显式设置排序规则C t=# with a as (sel

我有一个9.6.2版本的postgresql数据库,编码为UTF8,排序规则为en_GB.UTF8。我的一个表中有一个字段仅包含日语平假名字符。问题是通过SQL以正常方式对该字段进行排序。。。按[字段名称]排序。。。至少不会产生我期望的结果。相反,排序就好像行首先按字段内容的长度排序,然后才按字符排序一样。例如,与其得到:

あめ うえ おとこ かわり き し ひ

如我所料,订单如下:

き し ひ あめ うえ おとこ かわり

我缺少什么?

尝试显式设置排序规则C

t=# with a as (select string_to_array('あめ うえ おとこ かわり き し ひ' COLLATE "en_GB.UTF-8",' ') a) select unnest(a) from a order by 1;
 unnest
--------
 き
 し
 ひ
 あめ
 うえ
 おとこ
 かわり
(7 rows)

t=# with a as (select string_to_array('あめ うえ おとこ かわり き し ひ' COLLATE "C",' ') a) select unnest(a) from a order by 1;
 unnest
--------
 あめ
 うえ
 おとこ
 かわり
 き
 し
 ひ
(7 rows)

t=带有作为选择字符串的数组'あめ うえ おとこ かわり き し ひ',' ' a按1从订单中选择unnesta;向我展示了你在mac上的预期结果…谢谢你-在我的mac postgres 9.6.2和centos 7 postgres 9.2.18上,你的表达结果出现了意想不到的顺序,单词长度似乎比实际字符数还要多。哦-这当然有效,而且肯定是一条关于发生了什么的重要线索。再次感谢您的帮助!那么请接受和/或投票支持我的答案-我正在努力建立良好的声誉。值得注意的是,以下操作现在可以正常工作表名为'vocabs',字段名为'kana':通过kana COLLATE C从vocabs ORDER中选择kana;而且,由于我是在RubyonRails的上下文中工作的,模型名为“Vocab”,下面的代码也可以正常工作:Vocab.order'kanacollatec'