【发布时间】:2013-06-28 12:22:10
【问题描述】:
我正在尝试在 MS SQL 2012 Express 上运行以下查询:
Select (
Select Id, Salt, Password, BannedEndDate
from Users
where username = '" + LoginModel.Username + "'
), (
Select Count(*)
From LoginFails
where username = '" + LoginModel.Username + "'
And IP = '" + Request.ServerVariables["REMOTE_ADDR"] + "')"
);
但我收到以下错误:
当
EXISTS不引入子查询时,select列表中只能指定一个表达式。
我该如何解决这个问题?
【问题讨论】:
-
您在第一个子查询中选择了多个列。但是每个子查询只能返回一列。
-
您还应该阅读 SQL 注入。您在动态创建的 SQL 中直接使用请求变量 - 非常糟糕的编码风格。
-
我为每个有用户输入的查询使用参数,用户名只能包含数字和字母。模型正在对此进行检查。 (我正在使用 asp.net mvc)。不过感谢您的提示!
标签: sql sql-server tsql exists