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

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

没时间做,给出一种方案:

1、初始化SqlCommand、SqlConnection,获取数据表至DataTable,查询多次,本地缓冲,效率高点。

2、关键字分割为一维字符串数组keys[],n个关键字,用两个函数求出1至n个关键词的全部组合,由于m个关键字的组合可能若干种,每种都是一个二维数组(每行是一个组合),所以存至三维交错数组,方法如下:

string[][][] allKeys=new string[n][][]();

void fun1()

{

for(int i=0;i<keysLength;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;

}

}

朋友的sql语句有问题,查询不到数据,绑定datagrid就要出错。like模糊查询没有问题,问题sql语句中空格问题语法错误,确保数据库已连接、修改如下试试

adohytzRecordSource = "select from tbOA_hyjl where 会议主题 like' %" & Text2Text & "% 'and 发布人='" + Mid(frm_mainBeforeStatusBar1Panels(5)Text, 5, Len(frm_mainBeforeStatusBar1Panels(5)Text) - 4) + "' order by 发布时间 desc"

建议将sql语句赋值后到查询分析器验证一下。

以下是测试代码:环境SQLSERVER2008

-----------------------------------------

CREATE TABLE [dbo][Table_1](

[DATA] [nvarchar](50) NULL

) ON [PRIMARY]

GO

INSERT [dbo][Table_1] ([DATA]) VALUES (N'QQ 2009')

INSERT [dbo][Table_1] ([DATA]) VALUES (N'QQ2009')

INSERT [dbo][Table_1] ([DATA]) VALUES (N'qq123')

INSERT [dbo][Table_1] ([DATA]) VALUES (N'200912')

INSERT [dbo][Table_1] ([DATA]) VALUES (N'123')

INSERT [dbo][Table_1] ([DATA]) VALUES (N'233')

INSERT [dbo][Table_1] ([DATA]) VALUES (N'12')

GO

SELECT DATA

FROM Table_1

WHERE (DATA LIKE '%qq%') AND (DATA LIKE '%2009%')

---------------------------------------------------------

如果要求至少一个空格,请在qq后面或者在2009前面加一个空格

以上就是关于SQL多个关键字模糊查询(同一字段中)如何让尽量多的关键字相匹配的搜索结果在前面全部的内容,包括:SQL多个关键字模糊查询(同一字段中)如何让尽量多的关键字相匹配的搜索结果在前面、VB 使用“like”模糊查询的问题、sql语句模糊查询问题.单列多个条件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9665792.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存