这是Postgresql。
表中的列包含带标点符号的字符串值。值为“aac”,“。aaa”,“aa_b”等。当在order by子句中指定此列时,结果的顺序几乎是随机的。以句点开头的字符串应该出现在顶部,这不会发生。它们出现在中间的某个地方。
令人惊讶的是,只有一个数据库可以看到此行为。相同的查询在其他主机上的数据库上工作正常。
可能的原因是什么?
答案 0 :(得分:1)
“order by”(字符串比较)行为取决于the cluster's locale。
答案 1 :(得分:0)
首先,检查EXPLAIN并查看它是如何进行排序的。
如果EXPLAIN没有显示任何奇怪的内容,请检查群集的区域设置 - 也许它正在使用忽略某些字符的区域设置进行比较。