localhost和production上的ORDER BY行为不同

时间:2016-12-08 10:21:31

标签: postgresql

我在本地主机和生产数据库上发现了不同的ORDER BY行为问题。

我在localhost PostgreSQL 9.3.5.1和生产机器9.5.5上。两者都安装在基于Linux的系统上 - localhost在OS X EL Captaion上,在Ubuntu 16.04.1 LTS上生产。

在两台机器上,我按照SQL查询运行:

SELECT title FROM projects ORDER BY title;

在两台机器上,我在同一数据样本上获得了不同的结果。

本地主机:

!C project
A project
B project

生产:

A project
B project
!C project

因此,从某种原因看,生产中的PostgreSQL忽略了“!”在标题的开头。

client_encoding和server_encoding设置都设置为UTF8。 lc_collat​​e和类似的设置都设置为en_US.UTF-8。

有什么想法吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这是因为Ubuntu的排序与Mac Os和Windows不同。它只是忽略!感叹号,并通过第二个字母对它们进行正常排序。您可以搜索sort ubuntu exclamation

  1. https://ubuntuforums.org/showthread.php?t=1564233
  2. https://askubuntu.com/questions/422708/how-to-show-some-files-at-the-top-of-the-list-in-ubuntu
  3. 似乎PostgreSQL基于系统定义的排序。