我有一个查询要用“\”搜索名称,但它显示了表的所有记录。有人能告诉我剧本有什么问题吗。谢谢。这是我的sql脚本:
declare @Name varchar(50)='_' select * FROM products WHERE Name like @Name +'%'
7nbnzgx91#
要测试通配符的文本示例,请在通配符前面加转义符。例如。_匹配一个字符
jdzmm42g2#
_ 是匹配任何字符的通配符。你可以选择另一个角色来转义它。说:
_
WHERE Name like replace(@Name, '_', '$_') + '%' ESCAPE '$'
这会很麻烦,所以你可以使用不同的逻辑:
WHERE LEFT(Name, LEN(@Name)) = @Name
不幸的是,这个公式阻止了索引的使用。
2条答案
按热度按时间7nbnzgx91#
要测试通配符的文本示例,请在通配符前面加转义符。例如。
_匹配一个字符
jdzmm42g2#
_
是匹配任何字符的通配符。你可以选择另一个角色来转义它。说:这会很麻烦,所以你可以使用不同的逻辑:
不幸的是,这个公式阻止了索引的使用。