数据库查询的问题

chinakknd 2003-11-05 09:42:05
您好:
我想条件查询,要求如下:查找由输入框(m_name)的内容,并且类型等于列表框(m_leixing)选择的内容。
如:查找所有光盘名称=“轩辕剑”并且,类型为“游戏娱乐”的条目
我建立如下代码:
CString kknd;
Kknd=”SELECT * from cd_name WHERE 光盘名称 like ‘%’’;
Kknd=kknd+m_name+”%’ AND 光盘类型 LIKE ‘%”;
Kknd=kknd+m_leixing+”%’”
然后,查询,结果是可以列出比如输入的类型是类型是游戏的也可以出来
我更改为
CString kknd;
Kknd=”SELECT * from cd_name WHERE 光盘名称 like ‘%’’;
Kknd=kknd+m_name+”%’ AND 光盘类型 = ‘%”;
Kknd=kknd+m_leixing+”%’”
让它等于之后,结果是一个都查不出来了;为什么,我该怎么改?
...全文
55 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sony19791015 2003-11-05
  • 打赏
  • 举报
回复
不是很明白你说的问题!
只是我觉得这和你在数据库中的数据字段的设置有关系!
CString kknd;
kknd ="SELECT * from cd_name(表名) WHERE 光盘名称 like ‘%";
kknd = kknd + m_name + "%' AND 光盘类型 LIKE ‘% ;
kknd = kknd + m_leixing + "%'";
这样应该没有问题的,我建议你的类型应该是全是备选项,而且你可以用
AfxMessageBox(kknd);
来观察是否是你想要的查询语句,调试几次,应该可以解决了!



wj_xiazi 2003-11-05
  • 打赏
  • 举报
回复
兄弟误会了,这是LIKE和=的差别:
如果LIKE后面的匹配串种不含有通配符,则可以用=(等于)运算符取代LIKE谓词,用!=取代NOT LIKE谓词。
而你的匹配串内含有通配符,所以二者不等价!
lasery 2003-11-05
  • 打赏
  • 举报
回复
wj_xiazi(瞎子) 正确

4,017

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧