方法一:
user_name = Request.Form("user_name") '姓名
user_class = Request.Form("user_class") '班级
sWhere = ""
If user_name<>"" Then
If sWhere = "" Then
sWhere = " where user_name='" & user_name & "' "
Else
sWhere = sWhere & " and user_name='" & user_name & "' "
End If
End If
If user_class<>"" Then
If sWhere = "" Then
sWhere = " where user_class=" & user_class & " "
Else
sWhere = sWhere & " and user_class=" & user_class & " "
End If
End If
sSql = "select * from student" & sWhere 'SQL查询语句方法二:
user_name = Request.Form("user_name") '姓名
user_class = Request.Form("user_class") '班级
sWhere = ""
If user_name<>"" Then
If sWhere = "" Then
sWhere = " user_name='" & user_name & "' "
Else
sWhere = sWhere & " and user_name='" & user_name & "' "
End If
End If
If user_class<>"" Then
If sWhere = "" Then
sWhere = " user_class=" & user_class & " "
Else
sWhere = sWhere & " and user_class=" & user_class & " "
End If
End If
sSql = "select * from student where" & sWhere 'SQL查询语句方法三:
user_name = Request.Form("user_name") '姓名
user_class = Request.Form("user_class") '班级
sWhere = ""
If user_name<>"" Then sWhere = sWhere & " and user_name='" & user_name & "' "
If user_class<>"" Then sWhere = sWhere & " and user_class=" & user_class & " "
sSql = "select * from student where 1=1" & sWhere 'SQL查询语句我们来比较下三种方法
方法一:不会出错,代码多;
方法二:在user_name和user_class都为空的情况下会出现"select * from student where"这样的错误的SQL查询语句,代码和方法一样多;
方法三:不会出错,代码最少;
显然方法三是最可选的方法,最令人叫绝的是它用了"1=1",既减少了代码,又避免了出现错误的SQL查询语句!
关于"1=1(永真)"和"1<>1(永假)"网上举的比较多的例子就是在拷贝表和复制表结构中使用,代码如下:
拷贝表:create table_name as select * from Source_table where 1=1;
复制表结构:create table_name as select * from Source_table where 1<>1;
评论(0)
暂无评论。