Mysql匹配替代

时间:2009-10-09 07:44:35

标签: mysql match against

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

匹配不会给我那么多的控制权。

2 个答案:

答案 0 :(得分:2)

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

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

当然,你可以通过每个标准只有0或1来微调这一切。

答案 1 :(得分:-3)

select
  * 
from
  myTable
order by
(
    (itemdate='2009-10-09') +
    (title like '%keyword%') +
    (text like '%keyword%') +
    (criteria4) +
    (criteria5)
)

这非常棒。