MYSQL 匹配查询两个表

use*_*310 1 mysql join against match

是否可以使用连接对具有两个表的查询进行匹配?棘手的部分可能是表上的索引,但也许有办法.. sql 不是我的强项。非常感谢。我想它可能是这样的:

SELECT * FROM 'pages' p
LEFT JOIN `tags` t
ON p.id = u.pageid
WHERE MATCH(p.shdescript,t.tag) AGAINST ('romance, relationship')
Run Code Online (Sandbox Code Playgroud)

非常感谢

jch*_*360 5

这是可能的,但您需要有文本索引。

mysql> alter table pages add fulltext index_text(shdescript);

mysql> alter table tags add fulltext index_text(tag);

SELECT * FROM 'pages' p
LEFT JOIN `tags` t
ON p.id = u.pageid
WHERE MATCH(p.shdescript,t.tag) AGAINST ('romance relationship')
Run Code Online (Sandbox Code Playgroud)

我想这足以工作。

编辑:

从 MySQL 5.6 开始,可以在 MyISAM 和 InnoDB 存储引擎上完成上述全文搜索。在早期的 MySQL 版本上,只有 MyISAM 表支持全文索引。

http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html