我想从字段field1中找出含有三个关键词key1,key2,key3的记录,使用了如下语句:
select * from table1 where (field1 like 'key1') or (field1 like 'key2') or (field1 like 'key3') 结果中有些记录三个条件都成立,也就是含有三个关键词,有些含有两个,当然有些只有一个。我的问题是如何根据含有的关键词数量排序呢,有些类似于google的搜索。也就是含有三个关键词的排前些,含两个关键词的紧接,最后才是含一个关键词的记录??多谢各位!
select * from table1 where (field1 like 'key1') or (field1 like 'key2') or (field1 like 'key3') 结果中有些记录三个条件都成立,也就是含有三个关键词,有些含有两个,当然有些只有一个。我的问题是如何根据含有的关键词数量排序呢,有些类似于google的搜索。也就是含有三个关键词的排前些,含两个关键词的紧接,最后才是含一个关键词的记录??多谢各位!
from table1
where (field1 like '%key1%') or (field1 like '%key2%') or (field1 like '%key3%')
order by SIGN(INSTR(field1, 'key1'))+SIGN(INSTR(field1, 'key2'))+SIGN(INSTR(field1, 'key3'))
where title like '%美食%' or title like '%成都%' or title like '%好吃%'
order by
(
(case when title like '%美食%' then 1 else 0 end)+
(case when title like '%成都%' then 1 else 0 end)+
(case when title like '%好吃%' then 1 else 0 end)
)
desc
;
/* 对关键词匹配的个数越多,排在越前 */
from table1
where (field1 like '%key1%') or (field1 like '%key2%') or (field1 like '%key3%')
order by SIGN(INSTR(field1, 'key1'))+SIGN(INSTR(field1, 'key2'))+SIGN(INSTR(field1, 'key3')) desc只好在贴一遍那位删除 , 请出来解释一下!!