sql - 在 sql 中使用 UNIONS 时使用整体 WHERE 子句

标签 sql mysql full-text-search match against

我正在尝试使用 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/

相关文章:

MySQL 按子选择结果排序

c# - Entity Framework 6 Code First 插入时的默认日期时间值

mysql - 将所有数据与特定选择的用户 ID 的数据进行比较?

java - 登录时验证 BCrypt 哈希密码

mysql - MySQL 索引在存储 unix 纪元的 INT 字段上有多有效?

java - Hibernate 在 TextFullSearch 上搜索 "join"

iphone - iOS iPhone SQLite 和 Monotouch 问题

mysql - 全文干扰词——背后的逻辑

sql - 有没有一种方法可以防止重复调用 SQL 查询并进行缓存并加快速度?

mysql - 对一组 SUMS 求和