php - mysql全文搜索对最佳结果进行排序,然后按其他项目再次排序

标签 php mysql sorting search full-text-search

"SELECT *, 
    MATCH(md.keywords) AGAINST('$meta[keywords]') AS score
    FROM 
        meta_data AS md 
    INNER JOIN
        sites AS si ON md.domain = si.domain
    WHERE
        MATCH(md.keywords) AGAINST('$meta[keywords]')
    ORDER BY score DESC
    LIMIT 25"

我生成此查询是为了通过全文关键字搜索查找最佳匹配结果。现在我想按照浏览次数最多的条目再次对这些结果进行排序。 View 也存储在站点 (si.views) 的 mysql 数据库内。

如何首先按最佳匹配分数对结果进行排序,然后按观看次数对这 25 个最佳结果进行排序?我认为这可以通过分组来完成,但我不知道如何让它发挥作用。如有帮助,将不胜感激。谢谢,

最佳答案

select * from 
(
    SELECT *, 
    MATCH(md.keywords) AGAINST('$meta[keywords]') AS score
    FROM 
        meta_data AS md 
    INNER JOIN
        sites AS si ON md.domain = si.domain
    WHERE
        MATCH(md.keywords) AGAINST('$meta[keywords]')
    ORDER BY score DESC
    LIMIT 25
) x
order by x.views

关于php - mysql全文搜索对最佳结果进行排序,然后按其他项目再次排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135747/

相关文章:

php - 按发布日期对来自 mysql 的项目进行分组

MySQL ORDER BY 一列和第二列

php - 关于 MySQL JOIN 的建议

php - 如何在循环之前按键值对 json 字符串进行排序?

php - Symfony 从 2.2 升级到 2.3 类型为 "string or Symfony\Component\PropertyAccess\PropertyPath"的预期参数,给定为 "boolean"

php - CakePHP 多个应用程序的共享核心

Php 将更多数组保存到 MySQL 中

mysql - MySQL独家记录

algorithm - 排序和搜索关系

c# - 如何对子类进行比较和排序?