【发布时间】:2012-05-19 12:18:33
【问题描述】:
我已经使用 lc_collate、lc_ctype = es_PE.UTF-8 安装了 Ubuntu 12.04 和 PG 9.1,但它没有按预期进行整理 (u = ü = ú = U = Ú = Ü)。
如果我:
CREATE TABLE testing (id integer PRIMARY KEY, dad text, mum text, name text);
INSERT INTO testing VALUES
(1, 'león','valencia', 'josé'),
(2, 'leon', 'mendoza', 'juan'),
(3, 'león', 'valárd', 'jose'),
(4, 'león','válencia', 'jos'),
(5, 'león', 'mendoza', 'jua'),
(6, 'leon', 'valencia', 'josie'),
(7, 'león', 'valencia', 'josie'),
(8, 'leo','zara', 'juan'),
(9, 'león','Valencia', 'jos');
SELECT * FROM testing ORDER BY dad, mum, name;
然后我得到:
id | dad | mum | name
----+------+----------+-------
8 | leo | zara | juan
2 | leon | mendoza | juan
6 | leon | valencia | josie
5 | león | mendoza | jua
3 | león | valárd | jose
1 | león | valencia | josé
7 | león | valencia | josie
9 | león | Valencia | jos
4 | león | válencia | jos
(9 rows)
如何配置才能获取:
id | dad | mum | name
----+------+----------+-------
8 | leo | zara | juan
5 | león | mendoza | jua
2 | leon | mendoza | juan
3 | león | valárd | jose
9 | león | Valencia | jos
4 | león | válencia | jos
1 | león | valencia | josé
7 | león | valencia | josie
6 | leon | valencia | josie
(9 rows)
这是在 MySQL 中完成的,没有任何问题。但我无法在 PG 9.1 中配置它
提前谢谢...
【问题讨论】:
-
只是为了确认一下,当您在数据库中运行
SHOW lc_collate;和SHOW lc_ctype;时,都返回es_PE.UTF-8? -
是的@kgrittn,即使集群也是这样创建的。阅读您的答案,您提出的第二种形式将“leo”放在最后,这是意料之外的。我会调查以测试您的第一个提案,但 Make ú = u 不是整理的目的吗?在这种情况下,它应该使用第二个字段,然后是第三个字段来排序......因为它是 MySQL 正确执行的。
标签: postgresql collation postgresql-9.1