加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

与使用SQL Server匹配字符串的“=”相似

发布时间:2020-12-12 06:41:35 所属栏目:MsSql教程 来源:网络整理
导读:每当我编写一个存储过程来根据字符串变量(varchar,nvarchar,char)选择数据时,我会有类似的东西: procedure dbo.p_get_user_by_username( @username nvarchar(256)asbegin select u.username,u.email --,etc from sampleUserTable u where u.username = @user
每当我编写一个存储过程来根据字符串变量(varchar,nvarchar,char)选择数据时,我会有类似的东西:
procedure dbo.p_get_user_by_username(
    @username      nvarchar(256)
as
begin
    select
        u.username,u.email
        --,etc
    from
        sampleUserTable u
    where
        u.username = @username
end

所以换句话说就是匹配我所拥有的记录

u.username = @username

但有时我会遇到使用LIKE代替=的代码

u.username like(@username)

你什么时候用它?
不应该仅在需要一些通配符匹配时才使用它吗?

编辑

谢谢你的回答.

我认为我需要澄清一下,我真正想要问的是:如果可能存在这样的情况,那么首选使用“=”代替精确的字符串匹配.从答案我可以说不会有.
根据我自己的经验,即使在我需要忽略例如大小写,以及前导和结束空格的情况下,我会在两个字符串上使用ltrim,rtrim,lower然后“=”.再次感谢您的输入.

解决方法

你是对的.除非您正在进行外卡匹配,否则使用LIKE没有任何好处.此外,在没有通配符的情况下使用它可能会导致使用效率低下的查询计划.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读