我如何编写可能包含可能的None值作为参数的查询。 Mysql使用IS NULL作为NULL值的运算符,但是我的查询就像
SELECT JournalID FROM Journals WHERE ISSN=?
如果ISSN的值为NULL =,我也需要执行查询。 into为null。我该怎么办?
编辑问题不仅仅像“在where子句中使用OR”。例如:
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 = ?
有两种方法可以执行此操作
if issn == None:
# SELECT JournalID FROM Journals WHERE ISSN IS NULL
else:
# SELECT JournalID FROM Journals WHERE ISSN = ?
SELECT JournalID FROM Journals WHERE ((? IS NULL AND ISSN IS NULL) OR ISSN = ?)
我认为第一种方法更具可读性