Python Mysql:使用可能的None值作为参数的查询

问题描述 投票:-1回答:2

我如何编写可能包含可能的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,则该语句必须匹配。

python mysql prepared-statement
2个回答
2
投票

您是否正在寻找OR

WHERE ISSN IS NULL OR ISSN = ?

0
投票

有两种方法可以执行此操作

  1. 使用if and 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 = ?)

我认为第一种方法更具可读性

© www.soinside.com 2019 - 2024. All rights reserved.