关于多词查询,怎么实现?

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:47:06
我有一个数据表,一个字段(假设Title)里面包含了很多包含江苏,南京的数据,现在要求实现多词模糊查询,让最匹配的排前面。
也就是说,
如果用户输入了“江苏”查询,那么Title包含“江苏”的所有记录都显示,
如果用户输入了“南京”查询,那么Title包含“南京”的所有记录都显示;
如果用户输入了“江苏 南京”查询,那么Title包含“江苏”和包含“南京”的所有记录都显示,但是要求Title既包含了“江苏”,又包含了“南京”的数据排在前面.

请问怎么实现啊?
iphacker的基本可以解决两个关键词的问题,不过你给的虚拟字段有点点小的问题;
golden说的如果多个词的问题很有意义,如果用程序怎么实现?你知道吗?我用的是ASP

select * from
(
select a.*, level 0 from table a where a.title like '%江苏%'
and a.title like '%南京%'
union all
select a.*, level 1 from table a where a.title like '%江苏%'
or a.title like '%南京%')
order by level asc

结果会产生重复

想直接用sql语句实现吗???
如果只有两个词的话.那么也许可以用全关连实现.
如果有多个词.又要有顺序的概念.就基本上实现不了.
最好在程序里面实现他.

先把词分开,然后分两次查询.一次查找都有的记录.
另一次查找另外的.