Задать вопрос
Misanthropist
@Misanthropist
Web-developer

Есть ли возможность сделать нативный SELECT в PostgreSQL по полю int[]?

Есть 2 таблицы. В первой - список статей, во второй - список категорий. Одна статья может относится к нескольким категориям. Для этого в таблице со статьями есть поле типа int[] (массив) с ID категорий. Можно ли сделать выборку статей с названиями категорий простым SELECTOM? Или нужно заморочиться функциями?
  • Вопрос задан
  • 2394 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    SQL для разработки
    4 месяца
    Далее
  • Академия Eduson
    SQL-разработчик: тариф Базовый
    3 месяца
    Далее
  • Stepik
    SQL с нуля до PRO
    2 недели
    Далее
Пригласить эксперта
Ответы на вопрос 2
@krypt3r
Можно, типа SELECT * FROM table WHERE 17 = ANY(id)
Можно поставить индексы GIN.
Повнимательнее почитайте мануал, где описываются массивы. Там все есть
Ответ написан
Комментировать
Misanthropist
@Misanthropist Автор вопроса
Web-developer
При использовании
SELECT * FROM table WHERE 17 = ANY(id)
выдуются дублирующиеся результаты, а нужен один результат со всеми названиями категорий, id который есть в записи.

Про индексы - спасибо за наводку, сейчас почитаю.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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