我有一个名为Text_Field的表,它由一个名为ID的列
组成我有另一个名为Content的表,它由一个名为value的表
组成我想从Text_Field表中获取ID的值,这些值存在于Content的value列中并满足上述条件。
我知道我可以像这样构建一个查询
SELECT ID
FROM Text_Field
WHERE ID IN (
SELECT value
FROM CONTENT
WHERE USER='CURRENT_USER')
我唯一的问题是,在某些情况下,值表可能包含字符串
中的ID因此内部查询可能返回类似
的内容56789
12334
12348
Rtf(833405)
现在,如果我的ID是833405,它存在于值列中,但IN查询将返回false,
我试过
group_concat(value)
这样内部查询返回一个字符串,
56789,12334,12348,Rtf(833405)
我想知道在group_concat之后我可以使用像LIKE这样的东西来满足我的需要 或者还有其他方法可以做到这一点吗?
答案 0 :(得分:1)
使用exists
代替like
:
SELECT t.ID
FROM Text_Field t
WHERE EXISTS (SELECT 1
FROM CONTENT c
WHERE c.USER = 'CURRENT_USER' AND
(c.value = t.id OR
c.value LIKE '%(' || t.id || ')%'
)
);
注意: