新微赢技术网

标题: sql多条件语句查询的问题 [打印本页]

作者: 冷冷DI草    时间: 2010-1-9 09:14
标题: sql多条件语句查询的问题
数据表里面有字段省份,城市,分类,姓名和公司名称。
现在要实现的查询功能是:
1、默认不选择省份,不选择分类,不输入姓名或公司名称则显示全部信息。
2、有可能用户不选择省份,只选择分类,也不输入姓名或公司名查询。
3、有可能用户选择省份,但不选择分类,也不输入或有可能输入姓名或公司名查询。
4、有可能用户选择省份,选择分类,也输入姓名或公司名查询。
5、有可能用户不选择省份,不选择分类,只输入姓或或公司名查询。

省份是字段为sf,城市为city,分类为kind,姓名为xm,公司为gs
省份表单框名为sheng,城市为city,分类为kind,姓名或公司名都输入在keyword文本框中。
请各位高手帮我写一个SQL语句来实现这些查询。

以下是我自己写的,有错误。多条件情况下出错。
sql="select * from mintian"

if sheng<>"" or kind<>"" or keyword<>"" then
sql=sql&" where"
end if

if sheng<>""then
sql=sql&" sf='"&sheng&"' and city='"&city&"'"
end if

if kind<>"" then
sql=sql&" kind='"&kind&"'"
end if

if keyword<>"" then
sql=sql&" xm ='"&keyword&"' or gs like'%"&keyword&"%'"
end if
sql=sql&" order by id desc"
作者: 街头霸王爷    时间: 2010-1-9 09:15
这里有解决方法:http://www.comcool.net/bbs/dispbbs.asp?boardid=3&Id=10
作者: 冰rose冰    时间: 2010-1-9 09:15
说得好复杂啊, 一句话就完了: 每个条件都可有可无
关键是你生成的SQL语句不正确, 你可以打印出来检查啊, 注意的是:
1 如果有两个条件及以上的, 之间要用 AND
2 如果一个条件都没有, 则不需要 WHERE
3 姓名和公司的条件要用 ( ... or ...)
作者: 斌仔    时间: 2010-2-21 18:05
看完了这么强的文章,我想说点什么,但是又不知道说什么好,想来想去只想




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2