SQL 查询,在给定 IDS 列表的情况下,对 table 字段中的多个值利用 postgres ILIKE 函数

SQL query that leverages the postgres ILIKE function on multiple values from a table field given a list of IDS

我有两个关联的 table,vehiclesmodelsvehicles table 有一个 model_id 字段,models table 有一个 name 字段。给定一个 model id 列表,我想 return 一个与任何模型相关联的车辆列表,该模型以 modelname 开头,其 id 是列入名单。我怎样才能做到这一点?

我研究过在 postgres 中利用 ILIKE 函数,但一直无法生成一个有效的 sql 查询,该查询将传入 modelsnames 作为数组到 ILIKE。

任何 insight/direction 将不胜感激!

我认为这样的事情应该可行:

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) 员工