gpt4 book ai didi

python - 'P 0' < ' P! ' 在 python 和 postgresql 中

转载 作者:太空狗 更新时间:2023-10-29 20:20:27 27 4
gpt4 key购买 nike

Python 中的脚本不起作用,我将问题简化为以下内容。

在 PostgreSQL 9.1 中我试过:

SELECT 'P 0' < 'P! '
f

在 Python 2.7.3 中:

>>> 'P 0' < 'P! '
True

为什么 ' ' 在 PostgreSQL 中不低于 '!'?发生了什么事?

最佳答案

PostgreSQL 正在使用您的区域设置的排序规则进行字符串比较。 Python 使用不同的语言环境(可能是“C”)进行整理。

不知道你的数据库LC_COLLATE是什么(来自psql中的\l+)以及你的Python运行环境是什么,就很难多说了是。尝试显示数据库语言环境和 shell locale 命令的输出。

参见 the PostgreSQL documentation on locales .

例如比较对比:

-- results may vary depending on your OS/libc
SELECT 'P 0' < 'P! ' COLLATE "C"; -- returns true
SELECT 'P 0' < 'P! ' COLLATE "en_GB"; -- returns false

关于python - 'P 0' < ' P! ' 在 python 和 postgresql 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13530048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com