0

我需要使用相关算法进行搜索,数据库是 mysql。我必须按日期对结果进行排序,关键字是否在标题中,关键字在文本中出现的次数等等。

对战并没有给我太多的控制权。

4

2 回答 2

3

这样的事情会做你想要的:

select
  * 
from
  myTable
order by
  sum
  (
    itemdate='2009-10-09',
    title like '%keyword%',
    text like '%keyword%', 
    criteria4,
    criteria5
  )
  • 每个条件如果为假则返回 0,如果为真则返回 1。
  • 您将其中的每一个相加并按结果排序。
  • 具有最匹配标准的行将位于顶部。

当然,您可以通过每个标准不只是 0 或 1 来微调所有这些。

于 2009-10-09T07:55:07.720 回答
-4
select
  * 
from
  myTable
order by
(
    (itemdate='2009-10-09') +
    (title like '%keyword%') +
    (text like '%keyword%') +
    (criteria4) +
    (criteria5)
)

这真的很棒。

于 2012-02-05T19:23:11.943 回答