我昨天看到了 Heroku Postgres 的奇怪行为。当我执行此 sql 查询以进行字符串比较时:
SELECT ('2013/12-25' <= '2013/12/')
我的开发机器(9.2.3,Mac OS X Mavericks)上的 Postgres 返回 true(这是正确的),而 Heroku(9.2.4)上的 Postgres 返回false !!!
有人知道如何解决这个问题吗?
最佳答案
似乎这两个 Postgresql 实例 [在服务器配置中具有不同的默认 COLLATIONS ( http://www.postgresql.org/docs/9.3/static/collation.html ):
尝试检查此命令在两个服务器上是否输出相同的结果:
show lc_collate
对于您的示例,不同的排序规则可以显示不同的结果。例如:
SELECT (('2013/12-25' COLLATE "en_US") <= ('2013/12/' COLLATE "en_US"))
UNION ALL
SELECT (('2013/12-25' COLLATE "ko_KR") <= ('2013/12/' COLLATE "ko_KR"))
关于sql - Heroku Postgres 上 SQL 查询中的字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20781061/