在sql中使用联合时使用全局WHERE子句
我试图使用联合返回多个表的匹配结果,唯一的问题是一些行返回的相关性为0,我想排除这些。在联合之后,有没有一种方法可以使用“WHERE relevance>0” 下面是我的一点SQL在sql中使用联合时使用全局WHERE子句,sql,mysql,full-text-search,match,against,Sql,Mysql,Full Text Search,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
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之前添加相关性>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
您可以将其添加到每个查询中,也可以在查询结束时添加:
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)
WHERE relevance > 0
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
WHERE relevance > 0
ORDER BY relevance DESC
SELECT search, relevance 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
) D
WHERE relevance > 0
ORDER BY relevance DESC
哼应该注意的是,他的原始问题是“排除相关性为0的情况”,但他的psuedo where子句说>0。只是一张纸条