Sqlite MATCH和子查询

时间:2013-11-16 15:15:00

标签: sql sqlite match

我编写了以下按预期工作的查询:

SELECT col1 FROM table1 WHERE col1 MATCH ‘linux’;

我的问题是,我希望从子查询(例如从table2中选择操作系统)中获取它,而不是使用像'linux'这样的预定义词:

所以我写了下面的代码:

SELECT col1 FROM table1 WHERE col1  MATCH (SELECT os FROM table2);

但它没有按预期工作,因为看起来子查询(从table2中选择OS)只返回一行而不是单词列表。

任何解决方案?

1 个答案:

答案 0 :(得分:0)

如果您启用了enhanced query syntax,则可以搜索多个单词:

SELECT col1
FROM table1
WHERE col1 MATCH 'foo OR bar OR baz ...'

要构建此类字符串,请使用group_concat

SELECT col1
FROM table1
WHERE col1 MATCH (SELECT group_concat(os, ' OR ')
                  FROM table2)