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,vehicles
和 models
。 vehicles
table 有一个 model_id
字段,models
table 有一个 name
字段。给定一个 model
id 列表,我想 return 一个与任何模型相关联的车辆列表,该模型以 model
的 name
开头,其 id 是列入名单。我怎样才能做到这一点?
我研究过在 postgres 中利用 ILIKE 函数,但一直无法生成一个有效的 sql 查询,该查询将传入 models
的 names
作为数组到 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) 员工
我有两个关联的 table,vehicles
和 models
。 vehicles
table 有一个 model_id
字段,models
table 有一个 name
字段。给定一个 model
id 列表,我想 return 一个与任何模型相关联的车辆列表,该模型以 model
的 name
开头,其 id 是列入名单。我怎样才能做到这一点?
我研究过在 postgres 中利用 ILIKE 函数,但一直无法生成一个有效的 sql 查询,该查询将传入 models
的 names
作为数组到 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) 员工