MySQL,全文搜索以显示上次更新的行

时间:2016-02-13 10:44:14

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

我想知道如何将全文搜索查询与附加子句相结合,以便首先显示上次更新的行。

我有一个数据库 - advertisements,该表有很多字段,其中一个字段是' title'。我使用全文搜索来搜索此专栏。

示例DB:

  1. 标题行:Juniour PHP Developer
  2. 标题行:Seniour PHP Developer
  3. 标题行:C ++ Developer
  4. 如果我搜索我的网站,例如:

    " PHP Developer" - >那么结果集将是

    • Juniour PHP Developer
    • Seniour PHP Developer
    • C ++ Developer

    哪个好。

    但是我需要对此进行扩展以返回上次更新的准确结果。 我在DB中有updated_at列。

    E.g。当我搜索我的网站时,我希望获得如下结果:

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

    1. 首先展示' PHP开发人员'但要先显示最后更新的

    2. 然后展示所有其他开发人员(例如c ++开发人员),他们也必须先与最后更新的开发人员进行整理

    3. 我希望结果像(在搜索#34; PHP Developer&#34时):

      1. Juniour PHP Developer - 例如updated_at column = 13.02.16
      2. Seniour PHP Developer - updated_at = 10.02.16
      3. Juniour PHP Developer - updated_at = 04.01.16

      4. C ++ Developer - updated_at = 13.02.16

      5. Java Developer - updated_at = 02.02.15
      6. 我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以在updated_at列上使用订单,例如

<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