@fesano

Как проверить есть ли в базе данных PostgreSQL что то из списка?

У меня есть такой отрывок кода:
tokens = ["Тест", "Тест2"]
cursor.execute("SELECT MAX(category_id) FROM stories WHERE category = %s", tokens)


Как перечислить весь список? Список может быть очень большим, нужно что бы он брал варианты из списка и искал вариант из списка, допустим:
cursor.execute("SELECT MAX(category_id) FROM stories WHERE category = %s", ["Тест"])
cursor.execute("SELECT MAX(category_id) FROM stories WHERE category = %s", ["Тест2"])
  • Вопрос задан
  • 113 просмотров
Решения вопроса 1
rozhnev
@rozhnev
Fullstack programmer, DBA, медленно, дорого
PostgreSQL have ANY operator
SELECT MAX(category_id) FROM stories 
WHERE category = ANY(ARRAY['Тест', 'Тест2']);


PostgreSQL ANY operator
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Вариант 1 "В лоб": Используйте IN
Вариант 2 Нормальный: Приведите базу к 3 нормальной форме (считается стандартом) и используйте IN уже по внешним ключам.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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