首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL喜欢没有与'=‘相同的通配符?

SQL喜欢没有与'=‘相同的通配符?
EN

Stack Overflow用户
提问于 2008-12-31 23:01:15
回答 2查看 24.5K关注 0票数 50

我知道这是一个非常基本的问题,我想我知道我想确认的answer...but。

这些查询真的等同吗?

代码语言:javascript
复制
SELECT * FROM FOO WHERE BAR LIKE 'X'
SELECT * FROM FOO WHERE BAR ='X'

也许在没有外卡的情况下使用like会产生性能开销?

我有一款应用程序,可以随意使用,比如&通配符。SP目前做类似的,并附加外卡-我只是想更新查询使用相似,但有应用程序附加外卡的需要。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-31 23:07:18

正如@ocdecio所说,如果优化器足够聪明,就应该没有区别,但是如果您想要确定幕后发生了什么,您应该比较这两个查询的执行计划。

票数 33
EN

Stack Overflow用户

发布于 2016-06-13 11:18:51

马特·惠特菲尔德( Matt Whitfield )从这里发回的原始答案

=LIKE之间有一个区别。使用LIKE执行字符串比较时,模式字符串中的所有字符都是重要的。这包括前导或尾随空格。

因此,如果您有一个列是charnchar,而不是nvarcharvarchar,那么由于尾随空格会有不同的结果。

复制这种行为的一个小例子:

代码语言:javascript
复制
CREATE TABLE #temp (nam [varchar](MAX))
INSERT INTO [#temp] ([nam])
VALUES ('hello')
INSERT INTO [#temp] ([nam])
VALUES ('hello  ')

SELECT * FROM #temp WHERE [nam] = 'hello  '

SELECT * FROM #temp WHERE [nam] LIKE 'hello  '
票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/404226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档