SQL多个关键字模糊查询(同一字段中)如何让尽量多的关键字相匹配的搜索结果在前面?

SQL多个关键字模糊查询(同一字段中)如何让尽量多的关键字相匹配的搜索结果在前面?比如:关键字为"SQL查询匹配",则同时含有三个词的在前面(最好不分顺序),含其中两个的... SQL多个关键字模糊查询(同一字段中)如何让尽量多的关键字相匹配的搜索结果在前面?
比如:关键字为"SQL 查询 匹配",则同时含有三个词的在前面(最好不分顺序),含其中两个的次之,最后为含其中一个词的。
请问SQL应该怎么写?(注意:多个关键字,不一定就是三个,也可能两个、四个、五个或更多)
语言:最好为.net(C#),其它也可。
谢谢。
对n个关键词求m个的组合,并赋值怎么做?没写出来。。。还请高手指教!!
展开
 我来答
xx_lzj
2008-03-21 · TA获得超过970个赞
知道大有可为答主
回答量:578
采纳率:0%
帮助的人:733万
展开全部
没时间做,给出一种方案:
1、初始化SqlCommand、SqlConnection,获取数据表至DataTable,查询多次,本地缓冲,效率高点。
2、关键字分割为一维字符串数组keys[],n个关键字,用两个函数求出1至n个关键词的全部组合,由于m个关键字的组合可能若干种,每种都是一个二维数组(每行是一个组合),所以存至三维交错数组,方法如下:
string[][][] allKeys=new string[n][][]();
void fun1()
{
for(int i=0;i<keys.Length;i++)
{
fun2(i);
}
}
void fun2(int m)
{
对n个关键词求m个的组合,自己编写,记得要初始化allKeys的第二、三维。
}
3、利用上述三维字符数组,从n到1个关键词的顺序,构造like子句(n 乘以 n中取m个组合数 个子句)。
4、定义DataTable的DataView,一次设置其RowFilter属性为上述有序的
like子句
***********************************************************
补充:
求固定位的组合。下面是一种用递归的做法:
int mt=m;
int k=n!/m!;//n中取m的组合数,不会再要求我写求n!的程序了吧?
allKeys[mt]=new string[k][]();
allKeys[mt][k]=new string[mt]();
以上是本问题必要的初始化。下面求n中取m的一个组合。
void combination(int n,int m)
{
int i;
for (i = n; i >= m; --i) {
allKeys[mt][k][m]=keys[i];
if (m > 0)
combination(i-1,m-1);
else
return;
}
}
景联文科技
2024-06-11 广告
一、什么是数据标注?1. 数据标注定义数据标注是对未经处理的语音、图片、文本、视频等数据进行加工处理, 并转换为机器可识别信息的过程。原始数据一般通过数据采集获得, 随后的数据标注相当于对数据进行加工, 然后输送到人工智能算法和模型里完成调... 点击进入详情页
本回答由景联文科技提供
Gankutsuou
2008-03-22 · TA获得超过252个赞
知道小有建树答主
回答量:135
采纳率:0%
帮助的人:208万
展开全部
思路:
我的感觉是baidu、google是用的页面后台代码解析字符串,构造SQL语句条件部分,最后传递给底层与数据库连接的部分

用or like '%keyword%'来查询
规搜索引擎是关键字中无空格就构造where aa like '%keyword%'
有空格出现就对字符串拆分,构造语句,后面的全用or like '%keyword%'

LZ试试在baidu查询%是没有结果的
用诸如:%abc查出来的结果是忽略%号的

在SQL中用@name传参数的话,不许要对SQL关键字屏蔽,唯一的解释就是对字符串构造后组成的SQL语句
同时用这样的方法,对多参数的处理更容易
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
landy543210
2008-03-21 · TA获得超过768个赞
知道小有建树答主
回答量:508
采纳率:0%
帮助的人:0
展开全部
楼上的牛人,我一直认为多个条件的模糊查询,比如百度,谷歌等都是
都是直接查数据库,常用的在数据库中有视图呢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kaiyassng3825
2008-03-20 · TA获得超过147个赞
知道答主
回答量:80
采纳率:0%
帮助的人:0
展开全部
2w
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式