2009-10-09 60 views
0

我需要使用相关性算法进行搜索,并且数据库是mysql。我必须按日期对结果进行排序,如果关键字在标题中,文本中关键字的幽灵数量等等。针对替代方案的Mysql匹配

匹配不会给我太多的控制。

回答

2

像这样的事情会做你想要什么:如果是真的

select 
    * 
from 
    myTable 
order by 
    sum 
    (
    itemdate='2009-10-09', 
    title like '%keyword%', 
    text like '%keyword%', 
    criteria4, 
    criteria5 
) 
  • 每个标准将返回0,如果错误的,1。
  • 你将这些结果和结果进行相加。
  • 具有最匹配标准的行将位于最前面。

你可以调整所有这些当然不仅仅是每个标准有0或1。

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

这工作真的很棒。

+0

对不起,但没有'WHERE'或'HAVING'子句的'SELECT *'不是我的想法,“非常好用” – Andrew 2012-10-26 05:24:01