【发布时间】:2011-08-10 22:16:11
【问题描述】:
我可以用LIKE 替换= 语句来代替整数吗?
例如。以下是同一件事:
select * from FOOS where FOOID like 2
// and
select * from FOOS where FOOID = 2
我更喜欢使用 LIKE 而不是 =,因为当我没有 FOOID 过滤器时,我可以使用 %...
SQL Server 2005。
编辑 1 @Martin
【问题讨论】:
-
您对
LIKE 2的结果有何期望?? INT 值要么完全匹配,要么不完全匹配 - INT 没有 LIKE 功能,真的.... -
@marc_s:它与没有通配符的字符串完全相同:完全匹配。 @op 正在尝试重新发明一种过滤“这个或任何东西”的解决方案:stackoverflow.com/questions/5754619/sql-where-myid-any
-
如果您确实走这条路,请务必明确强制转换 FOOID,以便其他人查看您的代码时可以清楚地看到该行为。
-
在这种情况下,您的计划执行百分比不准确,因为您在其中有 INSERT 语句并且它会扭曲结果。 INSERT 语句比任何一个 SELECT 语句都要昂贵得多。只需自己检查两个 SELECT 语句的执行计划即可。
-
@Martin 抱歉,我正在向@serhio 讲话。他在问题中发布了一张图片,显示两个选择的绩效百分比相同。
标签: sql sql-server sql-server-2005 sql-like