我有2个表 table1 和 table2 。表1由段落组成,这是一篇新闻文章,其中包含一些公司代码/名称,而表2是由两列组成的字典,分别是公司代码和公司名称。
使用MYSQL FTS函数MATCH我想将文章与table2中的所有项目/词典进行比较 (两列)
SELECT * FROM pyproject.table1 WHERE MATCH (Paragraph) against
(SELECT * FROM pyproject.table2' with query expansion);
似乎会产生错误
如何检查文章是否与字典匹配,将选择表1 中的数据,并且选择表2 中的公司代码列与表1 中的数据一起包含/结合在一起。
因此,如果表1 中的文章由多个公司代码组成,则会被复制并添加相应的公司代码
答案 0 :(得分:1)
根据reference,you've provided AGAINST
不适用于列。相反,您可以使用LIKE
:
SELECT
t1.Paragraph,
t2.CompanyCode
FROM pyproject.table1 t1
INNER JOIN pyproject.table2 t2 ON (
(t1.Paragrah LIKE CONCAT('%', t2.CompanyCode, '%')) OR
(t1.Paragrah LIKE CONCAT('%', t2.CompanyName, '%'))
)
;