我有一个查询用' _'来搜索名称,但它显示了该表的所有记录。有人会告诉我我的剧本有什么问题。感谢。
有我的SQL脚本:
string test = "hello there";
test.ToTitle();
答案 0 :(得分:3)
_
是一个匹配任何字符的通配符。您可以选择另一个角色来逃避它。说:
WHERE Name like replace(@Name, '_', '$_') + '%' ESCAPE '$'
这可能会变得很麻烦,所以你可以使用不同的逻辑:
WHERE LEFT(Name, LEN(@Name)) = @Name
不幸的是,这种表述会阻止使用索引。
答案 1 :(得分:0)
根据MySQL指南," _"在 like 评估中使用时,字符是通配符,请参阅 https://dev.mysql.com/doc/refman/8.0/en/string-comparison-functions.html
如果你想匹配第一个字母,那么左可能会更好,请参阅 https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_left
答案 2 :(得分:0)
要测试通配符的文字实例,请在其前面加上转义字符。例如。
\ _匹配一个_字符