【发布时间】:2019-11-13 22:18:21
【问题描述】:
我正在使用一个查询,它在一个表中搜索两个条件。我举个例子:
Select *
from Customers
where mobile= '" + textboxt1.Text + "' or Phone = '" + textboxt1.Text + "'
查询返回给我的第一行手机号码或电话号码与我的textbox1.Text 相同。
我需要设置一个条件:开始查找“整个表”以查找第一个“或”语句(移动设备)。如果不存在任何结果,则使用第二个或条件(电话)再次搜索整个表。
有什么简单的方法可以让我编写查询吗?或者我需要为此使用一个案例吗?
【问题讨论】:
-
请参数化你的SQL!停止注入值!此外,您确实需要命名您的对象。当您在一周多的时间内审核您的申请时,
textboxt1和textboxt2对任何人(包括您)都将毫无意义。 Little Bobby Tables -
另一方面,SQL Server 2008 现在完全不受支持。您真的应该尽快考虑升级路径。
-
我建议像
SELECT TOP 1 * FROM (Select 'a' as Bob, * from Customers where mobile= @Value UNION ALL Select 'b' as Bob, * from Customers where phone = @Value) ORDER BY Bob这样的东西。这将比手机匹配更早地为您提供移动匹配。 -
@Shmeeku:这个问题是用 C# 标记的,所以这段代码在该语言中比在 T-SQL 中更有意义。
-
“不支持”并没有传达出事物的全部重要性。 Sql Server 2008 现在生命周期结束。这意味着根本不会发布新的更新...甚至没有关键的安全补丁。了解这一点有助于更清楚为什么继续使用这个旧版本是危险和不负责任的。
标签: sql sql-server tsql sql-server-2008