首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从全文查询中删除'duplicate‘

从全文查询中删除'duplicate‘
EN

Stack Overflow用户
提问于 2017-11-30 19:39:28
回答 0查看 86关注 0票数 1

我正在使用全文扩展默认的WordPress搜索,并有一个如下所示的SQL查询

代码语言:javascript
复制
SELECT SQL_CALC_FOUND_ROWS DISTINCT wp_posts.*,
  MATCH (wp_posts.post_title, wp_posts.post_content) AGAINST ('"string" @4' IN BOOLEAN MODE) AS p_score,
  MATCH (wp_postmeta.meta_value) AGAINST ('"string" @4' IN BOOLEAN MODE) AS pm_score
FROM wp_posts
  LEFT JOIN wp_postmeta ON wp_posts.ID = wp_postmeta.post_id
  LEFT JOIN wp_icl_translations ON wp_posts.ID = wp_icl_translations.element_id
  LEFT JOIN wp_icl_languages ON wp_icl_translations.language_code = wp_icl_languages.code AND wp_icl_languages.active = 1
WHERE 1=1
  AND IF(
    MATCH (wp_posts.post_title, wp_posts.post_content) AGAINST ('"string" @4' IN BOOLEAN MODE) > MATCH (wp_postmeta.meta_value) AGAINST ('"string" @4' IN BOOLEAN MODE),
    MATCH (wp_posts.post_title, wp_posts.post_content) AGAINST ('"string" @4' IN BOOLEAN MODE) > 0,
    MATCH (wp_postmeta.meta_value) AGAINST ('"string" @4' IN BOOLEAN MODE) > 0
  )
  AND wp_icl_translations.language_code = 'hr'
  AND wp_posts.post_status = 'publish'
ORDER BY p_score DESC LIMIT 0, 12

问题是我在结果表中既有p_score又有pm_score,所以会出现重复,如下所示

代码语言:javascript
复制
ID  | ... | p_score  | pm_score
234 | ... | 9.234234 | 8.234323
234 | ... | 9.234234 | 0

虽然从技术上讲,它们不是重复的(不同的分数),但我在搜索中仍然看到重复的。

是否可以执行一个查询,以便在获得MATCH的结果后,比较哪个分数(p_scorepm_score)较高,然后选择分数较高的那个进行显示?我在WHERE子句中尝试了类似的操作,但很明显,我做错了什么。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47572607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档