Можно ли передать неизвестное количество значений в sqllite3 запрос, без костылей?

Можно ли передать неизвестное количество значений в sqllite3 запрос, без костылей?
cur.execute(
        """
        DELETE from item
        WHERE NOT name IN (?); 
        """
       (names,)
)
# вместо "?" должно подставится неизвестное количество параметров
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
@deliro
К сожалению, нет. Только так:

placeholders = ", ".join(["?"] * len(names))
sql = f"DELETE FROM item WHERE NOT name IN ({placeholders})"
cur.execute(sql, names)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@101-s
Насчет sqlite не уверен, будет работать или нет, но попробуйте
вместо (?) сделать выборку (SELECT ...)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы