在字符串比较中使用 Like 运算符和通配符

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

内置模式匹配可帮助您比较字符串。 下表显示了可用于 Like 运算符的通配符及其匹配项。

角色 () 模式中 表达式中的匹配项
?_ (下划线) 任何单字符
*% 零个或多个字符
# 任何一位数的 (0-9)
[*charlist*] 字符列表中的任意单字符
[!*charlist*] 不在字符列表中的任意单字符

您可以使用一组一个或多个字符 (字符列表) 用括号) ([ ] 以匹配 表达式中的任何单个字符。 Charlist 可以包含 ANSI 字符集中的几乎任何字符,包括数字。 只有在括在括号中的情况下,才能使用特殊字符左括号 ([) 、问号 () ? 、数字符号 (#) 和星号 () * 直接匹配。 不能在组内使用右括号 (]) 来匹配自身,但可以在组外将其用作单个字符。

除了用括号括起来的简单字符列表外, charlist 还可以使用连字符 (-) 来分隔范围的上限和下限来指定字符范围。 例如,如果表达式中的相应字符位置在 到 的Z范围内A包含任何大写字母,则使用 in 模式会导致[A-Z]匹配。 可以在括号中包含多个范围而不分隔范围。 例如, [a-zA-Z0-9] 匹配任何字母数字字符。

ANSI SQL 通配符 (%_) 仅适用于 Microsoft Access 数据库引擎和 Access OLE DB 提供程序。 访问或 DAO 将它们视为文本。

模式匹配的其他重要规则包括:

  • charlist 开头 (!) 感叹号表示如果在表达式中找到除 charlist 中字符以外的任何字符则进行匹配。 在括号外使用时,感叹号自身匹配。
  • 您可以在 charlist 的开头 (感叹号后面使用连字符 (-) (如果一个) 使用)或在 charlist 的末尾匹配自身。 在任意其他位置,连字符可标识一个范围内的 ANSI 字符。
  • 指定字符范围时,字符必须按升序排序顺序 (A-Z0-100) 显示。 [A-Z] 是有效模式,但 [Z-A] 不是。
  • 字符序列 [ ] 被忽略。 它被视为零长度字符串 ("") 。