【问题标题】:How can we build a comparator that sorts Strings the same way that PostgreSQL does?我们如何构建一个与 PostgreSQL 一样对字符串进行排序的比较器?
【发布时间】:2022-01-09 03:33:28
【问题描述】:

之前也有人问过这个问题,但没有人给出正确答案。

How can I build a comparator that sorts Strings the same way that PostgreSQL does?

How to build a Python comparator that sorts strings the way PostgreSQL does?

虽然第二个链接有接受的答案,但如果有人认为第二个链接中接受的答案是正确的,他们可以将该代码转换为 java.lang.我的查询是我有一个字符串数组列表,我想按照 postgres 的方式对其进行排序。谢谢

【问题讨论】:

  • 我是 java 新手,对此我无能为力。如果您提供解决方案,我将不胜感激@DavidConrad
  • 根据你的字符串,String.CASE_INSENSITIVE_ORDER 可能是你所需要的,或者Collator 的一些设置可能就足够了。否则,您可能不会让 PostgreSQL 和 Java 完全一致。但这真的取决于你的数据是什么。

标签: java postgresql sorting


【解决方案1】:

您将无法这样做,因为 PostgreSQL 使用 C 库的排序规则(或来自 ICU 库的排序规则),而 Java 使用不同的排序规则。

您可以在 Java 和 PostgreSQL 中使用英语或希腊语排序规则,但它们在两个系统中很可能不会 100% 相同。

Python 是另一回事,因为它是用 C 实现的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2013-06-01
    • 2011-10-05
    相关资源
    最近更新 更多