SQL-запрос, который использует функцию postgres ILIKE для нескольких значений из поля таблицы с учетом списка IDS - PullRequest
0 голосов
/ 02 октября 2019

У меня есть две связанные таблицы, vehicles и models. Таблица vehicles имеет поле model_id, а таблица models имеет поле name. Учитывая список идентификаторов model, я хотел бы вернуть список автомобилей, связанных с любой моделью, которая начинается с name из model, чей идентификатор был включен в список. Как я могу это сделать?

Я изучил использование функции ILIKE в postgres, но не смог создать работающий SQL-запрос, который передаст names из models, предоставленного в виде массива. на ILIKE.

Любое понимание / направление будет принята с благодарностью!

1 Ответ

0 голосов
/ 02 октября 2019

Я думаю, что-то вроде этого должно работать:

SELECT *
  FROM vehicles
 WHERE model_id IN (SELECT id
                      FROM models
                     WHERE name ILIKE ANY (SELECT name||'%'
                                             FROM models
                                            WHERE id IN (<array of model IDs>)
                                          )
                   );

Раскрытие информации: я EnterpriseDB (EDB) сотрудник

...