在sql中搜索“\”可显示所有记录

bgibtngc  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(303)

我有一个查询要用“\”搜索名称,但它显示了表的所有记录。有人能告诉我剧本有什么问题吗。谢谢。
这是我的sql脚本:

declare @Name varchar(50)='_'
select *  FROM products WHERE  Name like @Name +'%'
7nbnzgx9

7nbnzgx91#

要测试通配符的文本示例,请在通配符前面加转义符。例如。
_匹配一个字符

jdzmm42g

jdzmm42g2#

_ 是匹配任何字符的通配符。你可以选择另一个角色来转义它。说:

WHERE Name like replace(@Name, '_', '$_') + '%' ESCAPE '$'

这会很麻烦,所以你可以使用不同的逻辑:

WHERE LEFT(Name, LEN(@Name)) = @Name

不幸的是,这个公式阻止了索引的使用。

相关问题