搜索时 % 通配符如何在 sql 中准确工作
How does % wildcard exactly work in sql when searching
我在'LIKE %Blabla%Another%'的where部分看到了一个select这样的语句,现在我自己试了一下,不太明白它是如何工作的。我感到困惑的是中间的 %,我了解“%Blabla Another%”的工作原理,但是用 % 代替 space,我感到困惑。
%
表示 "any sequence of characters, including an empty one"。所以 LIKE '%Blabla%Another%'
将匹配,例如 'XYZBlablaABCAnotherPQR'
、'BlablaAnother'
和 ' Blabla Another '
% 表示任何(包括 none)字符。
如果你有一个字符串 'abcdef' 它会匹配 'a%f' 因为字符串以 a 和 f 开头和结尾。
'%b%e%' 也将匹配,因为它表示任何带有 b 的字符串,甚至按该顺序排列,但不一定彼此相邻
使用 LIKE,您可以在模式中使用以下两个通配符:
% 匹配任意数量的字符,甚至零个字符。
_ 正好匹配一个字符。
在 SQL 中,通配符与 SQL LIKE 运算符一起使用。
sql%,_,[charlist],[^charlist] 中有通配符。
% 通配符可替代零个或多个字符。
例如
SELECT * FROM Customers
WHERE City LIKE '%es%';
这将选择城市包含模式 "es" 的所有客户。
所以在这里您可以看到 % 通配符充当空字符或 space 字符。
下面列出了您可以使用的通配符以及一些示例。
- %: 零个或多个字符的替代
- _:单个字符的替代
- [charlist]:要匹配的字符集和范围
- [!charlist]:只匹配括号内未指定的字符
以下 SQL 语句选择城市包含模式 "es"
的所有客户
- SELECT * 来自像“%es%”这样的城市的客户
以下 SQL 语句选择城市以任意字符开头,后跟 "erlin" 的所有客户:
- SELECT * 来自像“_erlin”这样的城市的客户
以下 SQL 语句选择城市以 "b"、"s" 或 "p" 开头的所有客户:
- SELECT * 来自城市喜欢'[bsp]%'的客户
以下 SQL 语句选择城市不以 "b"、"s" 或 "p" 开头的所有客户:
- SELECT * 来自城市 LIKE '[!bsp]%'
的客户
我在'LIKE %Blabla%Another%'的where部分看到了一个select这样的语句,现在我自己试了一下,不太明白它是如何工作的。我感到困惑的是中间的 %,我了解“%Blabla Another%”的工作原理,但是用 % 代替 space,我感到困惑。
%
表示 "any sequence of characters, including an empty one"。所以 LIKE '%Blabla%Another%'
将匹配,例如 'XYZBlablaABCAnotherPQR'
、'BlablaAnother'
和 ' Blabla Another '
% 表示任何(包括 none)字符。
如果你有一个字符串 'abcdef' 它会匹配 'a%f' 因为字符串以 a 和 f 开头和结尾。
'%b%e%' 也将匹配,因为它表示任何带有 b 的字符串,甚至按该顺序排列,但不一定彼此相邻
使用 LIKE,您可以在模式中使用以下两个通配符:
% 匹配任意数量的字符,甚至零个字符。
_ 正好匹配一个字符。
在 SQL 中,通配符与 SQL LIKE 运算符一起使用。
sql%,_,[charlist],[^charlist] 中有通配符。
% 通配符可替代零个或多个字符。
例如
SELECT * FROM Customers
WHERE City LIKE '%es%';
这将选择城市包含模式 "es" 的所有客户。
所以在这里您可以看到 % 通配符充当空字符或 space 字符。
下面列出了您可以使用的通配符以及一些示例。
- %: 零个或多个字符的替代
- _:单个字符的替代
- [charlist]:要匹配的字符集和范围
- [!charlist]:只匹配括号内未指定的字符
以下 SQL 语句选择城市包含模式 "es"
的所有客户- SELECT * 来自像“%es%”这样的城市的客户
以下 SQL 语句选择城市以任意字符开头,后跟 "erlin" 的所有客户:
- SELECT * 来自像“_erlin”这样的城市的客户
以下 SQL 语句选择城市以 "b"、"s" 或 "p" 开头的所有客户:
- SELECT * 来自城市喜欢'[bsp]%'的客户
以下 SQL 语句选择城市不以 "b"、"s" 或 "p" 开头的所有客户:
- SELECT * 来自城市 LIKE '[!bsp]%' 的客户