Недостаточно аргументов в строке, несколько предложений IN со значениями списка в запросе MySQL из Python

0

У меня есть код ниже, который не может заставить его работать, как только я добавлю второе предложение IN для фильтрации имен.

format_fname = ','.join(['%s'] * len(stFirstnames))
format_lname = ','.join(['%s'] * len(stLastnames))

curDox.execute("SELECT * FROM user WHERE firstname IN (%s) AND lastname IN (%s)" % format_fname,
                tuple(stFirstnames), format_lname,tuple(stLastnames))

Ошибка, которую я получаю

TypeError: not enough arguments for format string
Теги:

1 ответ

1
Лучший ответ

Попробуй это:

format_fname = ', '.join(['\'%s\''] * len(stFirstnames))
format_lname = ', '.join(['\'%s\''] * len(stLastnames))

curDox.execute("SELECT * FROM user WHERE firstname IN (%s) AND lastname IN (%s)" % (format_fname % tuple(stFirstnames), (format_lname % tuple(stLastnames))))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню