gpt4 book ai didi

python - psycopg2 选择 NULL 值

转载 作者:太空狗 更新时间:2023-10-30 00:07:16 24 4
gpt4 key购买 nike

我如何使用 string substitution在 Psycopg2 中处理 NULL 和非 NULL 值?

例如:

sql = 'SELECT * FROM table WHERE col = %s;'
possible_params = [1, None]

for x in possible_params:
print cur.mogrify(sql,(x,))

我需要第一个查询看起来像 SELECT * FROM table WHERE col = 1; 而第二个查询是 SELECT * FROM table WHERE col IS NULL; 的功能等价物;

有什么技巧吗?我有很多可能为 NULL 或具有值的列,因此动态构建 SQL 相当麻烦。

最佳答案

每次你不知道一个参数是否会是NULL您可以使用以下模式:

SELECT * FROM table WHERE col = <parameter> OR (col IS NULL AND <parameter> IS NULL)

哪里<parameter>是你的参数。

但请注意,我连续两次使用相同的参数,因此您需要切换到 dict格式。完整代码为:

sql = 'SELECT * FROM table WHERE col = %(p)s OR (col IS NULL AND %(p)s IS NULL)'
possible_params = [{"p":1}, {"p":None}]

for x in possible_params:
print cur.mogrify(sql,(x,))

关于python - psycopg2 选择 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21667912/

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