假设我有树表:
[ news ]
id
title
text
date
[ posts ]
id
title
text
date
[ gallery ]
id
title
text
date
如何使用一个查询在这些树状表中执行FULLTEXT搜索?
我只想在title
和text
字段上运行搜索,然后获取id
,title
,date
和{{1}结果......这可能吗?
»更新 - 最重要的是:我需要通过FULLTEXT评分DESC 订购结果(可能混合不同的表格结果)
答案 0 :(得分:0)
如果表之间存在明显的关系,请加入他们之间的关系。
如果这些数据确实是具有不同身份的相同数据,则可能应将它们重新计算到具有类型字段的单个表中。
答案 1 :(得分:0)
你可以在一个查询中使用UNION ALL进行此操作,但你必须使用三个参数 - 所有三个相同的搜索值 - 并且它将具有相同的数据库负载,如果不是更多,则比三个单独的查询,因为所有结果都将被拉入临时表中以对其进行排序。
尝试类似:
SELECT id, title, text, date, relevance
FROM (
SELECT id, title, text, date, MATCH(text) AGAINST (?) AS relevance
FROM news
UNION ALL
SELECT id, title, text, date, MATCH(text) AGAINST (?) AS relevance
FROM posts
UNION ALL
SELECT id, title, text, date, MATCH(text) AGAINST (?) AS relevance
FROM gallery
) temp_sort_table
ORDER BY relevance DESC