php - MySQL,全文搜索以显示最后更新的行

标签 php mysql database full-text-search full-text-indexing

我想知道如何将全文搜索查询与附加子句结合起来以首先显示最后更新的行。

我有一个数据库 - advertisements,该表有很多字段,其中一个是“标题”。我用全文搜索来搜索这个专栏。

示例数据库:

  1. 标题为:初级 PHP 开发人员的行
  2. 标题行:高级 PHP 开发人员
  3. 标题为:C++ 开发人员的行

如果我搜索我的网站,例如:

"PHP Developer"-> 然后结果集将是

  • 初级 PHP 开发人员
  • 高级 PHP 开发人员
  • C++ 开发人员

哪个好。

但是我需要扩展它以返回最后更新的准确结果。 我在数据库中有 updated_at 列。

例如当我搜索我的网站时,我希望获得如下结果:

"PHP Developer"-> 那么我想要的结果集应该是:

  1. 首先显示“PHP Developers”,但首先显示最后更新的

  2. 然后向所有其他开发人员(例如c++开发人员)展示他们也必须按照最后更新的顺序排列

我希望结果类似于(搜索“PHP Developer”时):

  1. 初级 PHP 开发人员 - 例如updated_at 列 =13.02.16
  2. 高级 PHP 开发人员 - updated_at=10.02.16
  3. 初级 PHP 开发人员 - updated_at=04.01.16

  4. C++ 开发人员 - updated_at=13.02.16

  5. Java 开发人员 - updated_at=02.02.15

我该怎么做?

最佳答案

您可以在 updated_at 列上使用 order by,例如

<your-query-here>
order by updated_at asc

或者你可以创建某种派生的顺序和顺序,比如

<your-query-here>    
order by
    (
        case
            when <something> then 1
            when <something-else> then 2
            ...
        end
    ) asc

关于php - MySQL,全文搜索以显示最后更新的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35378886/

相关文章:

php - ffmpeg 编码在从脚本(php/c#/etc.)而不是从命令行执行时卡住

php - 搜索具有最多共同标签的结果

mysql - 如何使用 JOIN 从 MySQL 中的多个表中删除?

php - 如何将此 XML 数据导入到 MySQL 数据库表中?

php - 保护远程 mysql 连接的安全

php - 在 Web 服务器中存储文件的安全方法?

mysql - 对 MYSQL 标签表进行排序

mysql - 在 bash 中从 mysql 获取计数值的最简单方法

mysql - 来自数据库的 Deedle Frame,什么是 Schema?

mysql - 使用 Redis 缓存 SQL 结果