使用经典ASP的SQL语句

时间:2014-03-30 21:10:14

标签: sql asp-classic

我有一个带有选择下拉菜单的表单,该表单是从数据库中填充的,当提交表单时我会从选择中获得结果

  SQL_query = "SELECT * from Flytasks where waabase like '"+waabase+"'"

我想选择单词" ALL"从下拉列表中需要一个select语句,当选择ALL时,它返回所有记录,单词ALL不在数据库中。

这可能吗?

非常感谢提前

罗布

2 个答案:

答案 0 :(得分:1)

这是经典ASP吗?您的代码显示字符串连接的加号,而不是经典ASP。

怎么样:

If waabase <> "ALL" Then
    SQL_query = "SELECT * from Flytasks where waabase like '" & waabase & "'"
Else
    SQL_query = "SELECT * from Flytasks"
End If

对于一点SQL注入保护,您可以更改为:

SQL_query = "SELECT * from Flytasks where waabase like '" & Replace(waabase, "'", "''") & "'"

答案 1 :(得分:0)

在产生下拉选项的查询中,执行以下操作:

select  blabla
from    tbl
union all
select  'All'

(将'All'指定为文字,因为它不存在于表中,使用union将其与存在的值连接起来)

然后在使用所选下拉值的查询中,执行以下操作:

select  *
from    tbl
where   promptfield = promptvalue
union all
select  *
from    tbl
where   promptvalue = 'ALL'

请注意,当在下拉列表中选择“ALL”时,此联合中的第一个查询基本上不返回任何结果,第二个查询将运行并生成所有结果。当选择除all之外的其他内容时,它将用作标准,第一个查询将生成其结果,而第二个查询将不返回任何内容,基本上可以执行您想要的操作。