Используя python и postgressql, как мне вставить значения переменных в оператор выбора - PullRequest
0 голосов
/ 06 мая 2020

Используя python и Postgresql, у меня есть список значений в переменной, которые выглядят следующим образом:

MLVN
AAOG
TAN
ITX
OMI
OSI

for epic in epics:
    text = epic.text
    print(text)
    instrument=cursor.execute("""SELECT epic FROM instrument_static where ticker IN ='%s'""" % (epic))
    print(instrument)

Для каждого значения я хочу выполнить поиск по нему в моей базе данных одним способом для этого используется оператор IN, но я не знаю, как я это решаю в приведенном выше коде. Использование кода в том виде, в каком он есть, дает мне ошибку:

psycopg2.errors.SyntaxError: syntax error at or near "="
LINE 1: ...ELECT epic FROM instrument_static where ticker IN ='<seleniu...
                                                             ^

1 Ответ

0 голосов
/ 06 мая 2020

Вы не можете использовать = с оператором IN в sql. Вместо этого сделайте следующее:

instrument = cursor.execute("SELECT epic FROM instrument_static where ticker = (?)", (epic))

Избегайте использования %s. Это может привести к sql injection.

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