Python Mysql: 以可能的 None 值作为参数进行查询

Python Mysql: query with possible None values as parameters

如何编写可能包含可能的 None 值作为参数的查询。 Mysql 使用 IS NULL 作为 NULL 值的运算符,但我的查询类似于

SELECT JournalID  FROM Journals WHERE ISSN=?

如果 ISSN 的值为 NULL,我也需要执行查询更改 =?为空。我该怎么做?

编辑 问题不是简单的像"Use OR in where clause"。例如:

ID  ISSN    TITLE  YEAR
1   null    null   "1990"   
2   "a"     "a"    "1992"

我想使用 select 获取 ID 1。我只想知道那一行。我该怎么做? 该语句在两种情况下都必须匹配,一种是我想检索 ID 1(具有 NULL 值),另一种是我想检索 ID 2

您在寻找 OR 吗?

WHERE ISSN IS NULL OR ISSN = ?

有两种方法可以做到这一点

  1. 使用 if 和 else
if issn == None:
   # SELECT JournalID  FROM Journals WHERE ISSN IS NULL
else:
   # SELECT JournalID  FROM Journals WHERE ISSN = ?
  1. 按照下面提到的方式编写准备好的陈述
SELECT JournalID FROM Journals WHERE ((? IS NULL AND ISSN IS NULL) OR ISSN = ?)

我觉得第一种方法可读性更好