某数据库,字段“先进事迹”值是 一大段汉字,如何把该 字段中包含 CString类型数组 str[0],str[1],……,str[10]中内容的记录全部找到?
比如 str[0]="这个可以有";str[1]="4斤沉的龙虾";……,str[10]="背个小包";也就是说,只要是字段“先进事迹”中包含 这个可以有、4斤沉的龙虾,……,背个小包 的记录都是我所想要的,不知道表达清楚没有?
我想这个可以使用 select * from 表 where 先进事迹 like 这一语句可以做到, 并且还应该用到通配符 % ,因为这里 这个可以有、4斤沉的龙虾,……,背个小包 只是 子串, 应该使用使用 %这个可以有% 这种格式。
请各位指点,并且给出具体的写法,多谢!
比如 str[0]="这个可以有";str[1]="4斤沉的龙虾";……,str[10]="背个小包";也就是说,只要是字段“先进事迹”中包含 这个可以有、4斤沉的龙虾,……,背个小包 的记录都是我所想要的,不知道表达清楚没有?
我想这个可以使用 select * from 表 where 先进事迹 like 这一语句可以做到, 并且还应该用到通配符 % ,因为这里 这个可以有、4斤沉的龙虾,……,背个小包 只是 子串, 应该使用使用 %这个可以有% 这种格式。
请各位指点,并且给出具体的写法,多谢!
解决方案 »
- ADO连接ACCESS换个操作系统运行报错问题
- 求助 :北京飞天诚信笔试题
- 一端发送文件,一端接收文件,接收方只能收到发送方的前两个包?
- 如何将中文工程改变成英文工程的问题
- 怎样使EditBox里的内容自动换行
- 高手请分析,关于CWnd::Create 的问题!
- 各位帮帮忙,哪里有制作安装程序的软件下载?最好是能够拿来就用的,因为我现在已经没有时间来完全的学习了
- 用ocx创建的子窗口,在网页上消失了
- 如何向一台已知IP地址的Win98或Windows 2000的机器发短消息?
- api hook startdoc 32位进程异常
- 请教递归转非递归:一个枚举注册表子键的函数,有While循环
- 怎样把一颗树的信息存储到数据库中
试试
str.Format(_T("select * from table where 先进事迹 like %\'%s\' % or 先进事迹 like %\'%s\'% ", str[0], str[1]"))
如果还有别的检索字段,就做个循环,往str后面加就行了。
CString str;
str.Format("select * from table where 先进事迹 like %\'%s\'% and 先进事迹 like %\'%s\'%",strw[0],strw[1]);我这么写的,编译通过,一运行就出错。
CString str;
CString csz1 = "%" + strw[1] + "%";
CString csz2 = "%" + strw[2] + "%";
str.Format("select * from [table] where 先进事迹 like \'%s\' or 先进事迹 like \'%s\'",csz1,csz2);
PS:若是包含数组中任一条件的都符合条件的用or,要符合数组中所有条件才可以的用and.
这个编译通过,生成的str也对,但是放到m_pRecordset->open函数中就会报错,并且就是这个sql语句引起的错误,不知道为什么。
还有,'%%%s\%%'应该怎么解释,我知道%s表示字符串,那么前两个%表示什么呢,表示一个%吗,是转义的意思吗,还是其他的解释?
请指点。
%% 是%的转义 报错 是SQL Server数据库吗?应该没问题,在查询分析器试下呢?? 如果是Access这样好象不对
CString strw[2]={"dds","ss"};
CString str;
str.Format("select * from table where 先进事迹 like \'%%%s%%\' and 先进事迹 like \'%%%s\%%'",strw[0],strw[1]);
like '%%相似内容%%'相似内容用 %s 格式化那就变成了'%%%s%%'