搜索' _'在SQL中显示所有记录

时间:2018-05-16 13:07:34

标签: mysql sql

我有一个查询用' _'来搜索名称,但它显示了该表的所有记录。有人会告诉我我的剧本有什么问题。感谢。

有我的SQL脚本:

string test = "hello there";
test.ToTitle();

3 个答案:

答案 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)

要测试通配符的文字实例,请在其前面加上转义字符。例如。

  

\ _匹配一个_字符