我正在尝试使用 UNIONS 针对多个表返回 MATCH() AGAINST() 结果,唯一的问题是某些行返回 0 的相关性,我想排除这些。在工会之后有一种方法可以使用 'WHERE relevance > 0'
下面是我的一些SQL
SELECT pages.content AS search, page_info.url AS link, MATCH(pages.content) AGAINST('Wales') as relevance
FROM page_content
LEFT JOIN pages ON (page_info.page = pages.id)
UNION
SELECT products_real.name AS search, products_real.event AS link, MATCH(products_real.name, products_real.description) AGAINST ('Wales') as relevance
FROM product_real
ORDER BY relevance DESC
那么无论如何我可以在 ORDER BY 之前添加 WHERE relevance > 0
非常感谢
最佳答案
尝试使用派生表
SELECT *
FROM
(SELECT
pages.content AS search,
page_info.url AS link,
MATCH(pages.content) AGAINST('Wales') as relevance
FROM page_content
LEFT JOIN pages ON (page_info.page = pages.id)
UNION
SELECT
products_real.name AS search,
products_real.event AS link,
MATCH(products_real.name, products_real.description) AGAINST ('Wales') as relevance
FROM product_real) myQuery
Where myQuery.relevance <> 0
ORDER BY myQuery.relevance DESC
关于sql - 在 sql 中使用 UNIONS 时使用整体 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3195272/