从表中获取Sqlite

时间:2016-02-20 18:31:57

标签: sql sqlite

我有一个名为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这样的东西来满足我的需要 或者还有其他方法可以做到这一点吗?

1 个答案:

答案 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 || ')%'
                    )
             );

注意: