首页 / SQL优化

mysql like %_% 和 %_ 和 _% 的区别

2023-06-21 SQL优化 阅读:2042 admin

在 SQL 查询中,通配符(Wildcard)是一种特殊的字符,用于模糊匹配字符串。常见的通配符是 %_

  • % 代表零个或多个字符。当 % 出现在模式字符串中时,它将匹配任意长度的字符序列。例如,'%abc%' 将匹配包含 "abc" 子串的任意位置的字符串。

  • _ 代表单个字符。当 _ 出现在模式字符串中时,它将匹配任意单个字符。例如,'_abc' 将匹配以 "abc" 开头的四个字符的字符串。

现在来解释 %_%%__% 的区别:

  • %_% 表示匹配任意位置包含任意字符的字符串。其中第一个 % 匹配任意长度的字符序列,而第二个 _ 匹配单个字符。例如,'%_%abc%' 将匹配任意位置包含 "abc" 子串的字符串。

  • %_ 表示匹配以任意字符结尾的字符串。其中 % 匹配任意长度的字符序列,而 _ 匹配单个字符。例如,'%_abc' 将匹配以 "abc" 结尾的字符串。

  • _% 表示匹配以任意字符开头的字符串。其中 _ 匹配单个字符,而 % 匹配任意长度的字符序列。例如,'_abc%' 将匹配以 "abc" 开头的字符串。

综上所述,%_%%__% 在匹配规则上有所区别,可以根据需要选择合适的模式来进行字符串匹配。