@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"])
  • Вопрос задан
  • 99 просмотров
Решения вопроса 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 уже по внешним ключам.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект
28 апр. 2024, в 19:44
10000 руб./за проект