主题:  一个asp同等级多条件搜索问题

kissall

职务:普通成员
等级:1
金币:0.0
发贴:10
#12002/12/22 11:54:03
我想问一下,比如我有数据id 1 2 3 4 5
我第一条件搜索出符合条件的 2 3 4
然后我想在第一条件下搜索出来的结果下,再进行第二次搜索
)set rs=conn.execute("SELECT * FROM shu where id="??????" and ad like '%"&request("ad")&"%'"))
这个里面的id怎么来取2 3 4??



FlowJZH

职务:普通成员
等级:1
金币:0.0
发贴:22
#22002/12/22 12:21:00
"SELECT * FROM shu where id IN (SELECT id FROM xxx WHERE xxx) and ad like '%"&request("ad")&"%'"


不过小生觉得这样的方法不是很科学,为什么不直接把第一条件和第二条件写在一起呢?

SELECT * FROM Tablea,Tableb WHERE 第一条件,第二条件


还可以配合JOIN的方法来实现更复杂的查询



kissall

职务:普通成员
等级:1
金币:0.0
发贴:10
#32002/12/22 18:43:33
我想问的是比如我的搜索有3项
1 [<%=request("text1")%>]
2 [<%=request("text2")%>]
3 [<%=request("text3")%>]
搜索
然后我有数据 3个数据
111.aaa.AAA
222.bbb.BBB
333.ccc.CCC
然后我定义了根据SQL
if keyword1="" and keyword2="" and keyword3="" then
sql="select * from shu order by ID desc"

elseif keyword2="" and keyword3="" then

sql="select * from shu where sousuo like '%"&trim(keyword1)&"%' order by ID desc"

elseif keyword3="" then

sql="select * from shu where id in (select * id from shu where sousuo like '%"&trim(keyword1)&"%') and sousuo like '%"&trim(keyword2)&"%'"

else

sql="select * from shu where id in (select * from shu where id in (select * id from shu where sousuo like '%"&trim(keyword1)&"%') and sousuo like '%"&trim(keyword2)&"%') and sousuo lke '%"&trim(keyword1)&"%'"

end if
但是,我用第一个搜索是可以搜索出来的,但是如果我用1,2搜索就不能搜索出来了,大家看看我那个地方出了错
谢谢



今晚在线

职务:普通成员
等级:3
金币:1.0
发贴:761
#42002/12/22 20:26:33
其实你可以这样


用字符串连接的方法
sql="select * from shu where "
if key1 <> "" then sql = sql & " 字段1 = '%"&trim(keyword1)&"%'"
if key2 <> "" then sql = sql & " , and 字段2= '%"&trim(keyword2)&"%'"


类似于这样,不过有些条件还得仔细设定一下,比如现在如果1为空那么2就不能运行

解决方法自己按情况考虑把