LIKE 在 SQL 中不起作用
Posted
技术标签:
【中文标题】LIKE 在 SQL 中不起作用【英文标题】:LIKE not working in TSQL 【发布时间】:2013-11-05 01:32:06 【问题描述】:考虑一下TSQL:
declare @b varchar(100)
set @b = 'BANK-41'
IF @b LIKE 'BANK_%'
BEGIN
print 'Wrong Matching'
END
为什么 TSQL 会匹配字符串“BANK-
”和“BANK_
”?
【问题讨论】:
【参考方案1】:在 TSQL 中,下划线是表示单个字符的通配符。
为了逃避,你需要用方括号括起来,像这样:
'银行[_]%'
查看此页面: http://www.dirigodev.com/blog/web-development-execution/escaping-percent-and-underscore-characters-in-t-sql-like-clause/
【讨论】:
【参考方案2】:我认为,SQL Server 中的下划线是为通配符保留的。你需要逃避它。我想你可以把它放在括号里:
%[_]%
【讨论】:
感谢您的帮助。这对理解这一点很有帮助。【参考方案3】:您需要转义“_”。它是 Like 语句的特殊字符。可以用[]括起来。
见LIKE (Transact-SQL)。
【讨论】:
感谢您的帮助。这对理解这一点很有帮助。以上是关于LIKE 在 SQL 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
带有“LIKE”语句的雄辩查询在 Laravel 6 中不起作用
在 SQL LIKE 子句中使用 SqlParameter 不起作用