|
主题: 多个条件查询的问题
|
 babyyw
职务:普通成员
等级:1
金币:0.0
发贴:29
|
#12002/8/8 13:37:42
我想在查询的时候同时用多个条件(比如3个) 于是我设计了一个有3个可输入文本框(输入条件)和一个按钮(提交)的表单
在searchresult.cfm中我的cfquery不知道该怎么写了 如果写成
SELECT * FROM dbo.device WHERE name like '#FORM.name#%' and vendor like '#form.vendor#%' and area like '#form.area#%'
这样只要有一个条件没填,就无法查询出正确的结果 而我希望能够只输入一个条件时 就只按这一个条件进行搜索 而忽略其他为空的条件 我该怎么做
|
 5DDC版主
职务:版主
等级:6
金币:10.0
发贴:3820
|
#22002/8/8 16:49:55
使用 or 连接条件!
|
 babyyw
职务:普通成员
等级:1
金币:0.0
发贴:29
|
#32002/8/8 17:50:20
用OR肯定不对!
|
 我知道
职务:普通成员
等级:4
金币:2.0
发贴:2211
|
#42002/8/9 8:01:32
当无值时默认为%,用and关系,这样可以吧?
|
 dannyr
职务:普通成员
等级:1
金币:0.0
发贴:39
|
#52002/8/9 8:45:51
写成
SELECT * FROM dbo.device WHERE name like '%#FORM.name#%' and vendor like '%#form.vendor#%' and area like '%#form.area#%'
|
 babyyw
职务:普通成员
等级:1
金币:0.0
发贴:29
|
#62002/8/9 8:58:21
用了这个方法 还是不行 好像不能用判断form.vendor是否存在作为条件 因为可能即使不输入 form.vendor也是存在的 只是为空而已
|
 babyyw
职务:普通成员
等级:1
金币:0.0
发贴:29
|
#72002/8/9 9:06:58
这样就成功了 谢谢各位
SELECT * FROM dbo.device WHERE 0=0
and name like '#form.name#%'
and vendor like '#form.vendor#%'
and area like '#form.area#%'
|
 5DDC版主
职务:版主
等级:6
金币:10.0
发贴:3820
|
#82002/8/9 9:10:56
何必这么麻烦呢!非必要条件一样是可以通过SQL查询的!
|
 babyyw
职务:普通成员
等级:1
金币:0.0
发贴:29
|
#92002/8/9 9:21:29
那你就教教我呀!
|
 5DDC版主
职务:版主
等级:6
金币:10.0
发贴:3820
|
#102002/8/9 9:41:24
WHERE (name like '%#name#%') or (vendor like '%#vendor#%' ) or (area like '%#area#%' )
加上括号OLEDB连接数据库!就可以了!去掉form 之后自然0字节的部分就会以*的方式执行了!尽量用OLEDB连接!SQL语法比较标准和严格!
|
 UndeadCraft
职务:版主
等级:4
金币:10.0
发贴:1993
|
#112002/8/14 16:21:19
WHERE (name like '%#name#%') or (vendor like '%#vendor#%' ) or (area like '%#area#%' ) 这里的%号是什么意思?
|
 babyyw
职务:普通成员
等级:1
金币:0.0
发贴:29
|
#122002/8/14 16:58:02
通配符
|
 5DDC版主
职务:版主
等级:6
金币:10.0
发贴:3820
|
#132002/8/14 17:28:22
? 代表一个字符 % 代表任意自负
|
 网络白痴 | 5D荣誉斑竹
职务:普通成员
等级:4
金币:10.0
发贴:1657
|
#142002/8/15 8:32:33
batyvn的sql方式不能解决几个文本同时搜索吧?只是解决了在一个文本框里进行多条件搜索而已,所以还是得涉及前面的动态查询方法吧。
|
 5DDC版主
职务:版主
等级:6
金币:10.0
发贴:3820
|
#152002/8/15 9:09:42
如果你用OLEDB连接数据库就是可以的!而且标准的SQL是允许的! ODBC连接语法和OLEDB有一些差别的!
|