jor*_*dan 13 sql wildcard subquery
我怎样才能做到这一点?
SELECT *
FROM item
WHERE item_name LIKE '%'
|| (SELECT equipment_type
FROM equipment_type
GROUP BY equipment_type)
|| '%'
Run Code Online (Sandbox Code Playgroud)
内部子查询返回一个字符串列表,如'''test''aother',我想从item表中选择item_name与子查询返回值类似的所有项.我需要外卡.
有替代方法,我可以使用通配符,但使用IN sql命令?
Lam*_*mak 18
你可以使用INNER JOIN:
SELECT I.*
FROM item I
INNER JOIN (SELECT equipment_type
FROM equipment_type
GROUP BY equipment_type) E
ON I.item_name LIKE '%' || E.equipment_type || '%'
Run Code Online (Sandbox Code Playgroud)
如果您不想担心重复并且不关心哪一个匹配,那么切换到使用exists:
select i.*
from item i
where exists (select 1
from equipment_type
where i.item_name like '%'||equipment_type||'%'
)
Run Code Online (Sandbox Code Playgroud)