like运算符使用指南

LIKE 运算符是一种在 SQL 查询语句中用于字符串匹配的工具,它可以帮助您判断一个字符串是否符合特定的模式。LIKE 运算符在进行匹配时是区分大小写的,这意味着 'A' 和 'a' 会被视为不同的字符。

语法

LIKE 运算符的基本语法如下:

str [ NOT ] LIKE pattern

其中,

str
str
是要匹配的字符串表达式,
pattern
pattern
是要匹配的模式表达式。您还可以使用
NOT
NOT
关键字来反转匹配条件。

此外,LIKE 运算符还支持与

ANY
ANY
SOME
SOME
ALL
ALL
关键字结合使用,以便在多个模式中进行匹配。当使用
ALL
ALL
时,
str
str
必须匹配所有给定的模式;而使用
ANY
ANY
SOME
SOME
时,
str
str
只需匹配至少一个模式。

模式中的通配符

LIKE 运算符的模式中包含以下两种特殊字符,用于表示通配匹配:

  • _
    _
    :匹配任意单个字符(类似于 POSIX 正则表达式中的
    .
    .
    )。
  • %
    %
    :匹配任意数量的字符(类似于 POSIX 正则表达式中的
    .*
    .*
    )。

使用示例

假设我们有一个名为

students
students
的表,其中包含学生的姓名和班级信息,如下所示:

CREATE TABLE students ( name STRING, class STRING ); INSERT INTO students (name, class) VALUES ('Alice', 'A'), ('Bob', 'B'), ('Carol', 'A'), ('David', 'C');

以下是一些使用 LIKE 运算符的查询示例,以及它们的输出结果:

  1. 查询班级中包含字母 "A" 的学生(区分大小写):

SELECT name, class FROM students WHERE class LIKE '%A%'; +-------+-------+ | name | class | +-------+-------+ | Alice | A | | Carol | A | +-------+-------+

  1. 查询姓名以 "A" 开头的学生(区分大小写):

SELECT name, class FROM students WHERE name LIKE 'A%'; +-------+-------+ | name | class | +-------+-------+ | Alice | A | +-------+-------+

  1. 查询姓名以 "B" 或 "C" 开头的学生:

SELECT name, class FROM students WHERE name LIKE ANY ('B%', 'C%'); +-------+-------+ | name | class | +-------+-------+ | Bob | B | | Carol | A | +-------+-------+

  1. 查询姓名中同时包含字母 "a" 和 "l" 的学生:

SELECT name, class FROM students WHERE name LIKE ALL ('%a%', '%l%'); +-------+-------+ | name | class | +-------+-------+ | Carol | A | +-------+-------+

  1. 查询姓名不以 "D" 开头的学生:

SELECT name, class FROM students WHERE name NOT LIKE 'D%'; +-------+-------+ | name | class | +-------+-------+ | Alice | A | | Bob | B | | Carol | A | +-------+-------+

联系我们
预约咨询
微信咨询
电话咨询