我编写了以下按预期工作的查询:
SELECT col1 FROM table1 WHERE col1 MATCH ‘linux’;
我的问题是,我希望从子查询(例如从table2中选择操作系统)中获取它,而不是使用像'linux'这样的预定义词:
所以我写了下面的代码:
SELECT col1 FROM table1 WHERE col1 MATCH (SELECT os FROM table2);
但它没有按预期工作,因为看起来子查询(从table2中选择OS)只返回一行而不是单词列表。
任何解决方案?
答案 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)