私はpsycopg2を使用してPythonでこのスニペットを持っています:
spam = None
command = sql.SQL("= {}").format(sql.Literal(spam))
コマンドを変更すると「= NULL」が得られますが、SQLクエリに含めると結果が得られません。クエリを実行するには「IS NULL」が必要なためです。
(スパムが「なし」ではなく、たとえば「eggs」の場合、「=「eggs」」はクエリに対して正常に機能します。)
次の引数がNoneかどうかに応じて、mogrifiedコマンドで「IS」と「=」を自動的に切り替える方法はありますか?
ありがとう!
回答:
回答№1は1いいえ、でも使えます is distinct from
の代わりに =
比較にヌルを含めるため。
https://www.postgresql.org/docs/current/static/functions-comparison.html