Python Mysql: запрос с возможными значениями None в качестве параметров - PullRequest
0 голосов
/ 04 февраля 2020

Как мне написать запрос, который может содержать возможные значения None в качестве параметров. Mysql использует IS NULL в качестве оператора для значений NULL, но мой запрос похож на

SELECT JournalID  FROM Journals WHERE ISSN=?

Мне нужно выполнить запрос также, если значение для ISSN равно NULL меняется =? в ноль. Как я могу это сделать?

РЕДАКТИРОВАТЬ Вопрос не просто как «Использовать ИЛИ в предложении где». Например:

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

Я хочу получить ID 1, используя select. Я хочу знать ТОЛЬКО этот ряд. Как я мог это сделать? Оператор должен совпадать в обоих случаях: один, если я хочу получить ID 1 (со значениями NULL), и один, если я хочу получить ID 2

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020

Вы ищете OR?

WHERE ISSN IS NULL OR ISSN = ?
1 голос
/ 04 февраля 2020

Есть два способа сделать это

  1. Используя if и else
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 = ?)

Мне кажется, что первый метод более читабелен

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...