SQL Wildcard(通配符)

我们已经讨论过 SQL LIKE 运算符,该运算符可以使用通配符对表中的列进行模糊匹配。

SQL LIKE 支持两个通配符,具体看下表

通配符 描述
百分号 (%) 匹配一个或多个字符。
注意- MS Access 使用星号 (*) 通配符而不是百分号 (%) 通配符。
下划线 (_) 匹配一个字符。
注意- MS Access 使用问号 (?) 而不是下划线 (_) 来匹配任何一个字符。

百分号代表零、一个或多个字符。下划线代表单个数字或字符。这些符号可以组合使用。

语法

%_ 运算符的基本语法如下。

SELECT * FROM table_name
WHERE column LIKE 'XXXX%'

-- 或者

SELECT * FROM table_name
WHERE column LIKE '%XXXX%'

-- 或者

SELECT * FROM table_name
WHERE column LIKE 'XXXX_'

-- 或者

SELECT * FROM table_name
WHERE column LIKE '_XXXX'

-- 或者

SELECT * FROM table_name
WHERE column LIKE '_XXXX_'

示例

下表有几个示例,显示了 WHERE 部分具有不同的 LIKE 语句,其中包含 %_ 运算符

LIKE 语句 描述
WHERE SALARY LIKE '200%' 查找任何以 200 开头的值。
WHERE SALARY LIKE '%200%' 查找在任何位置具有 200 的任何值。
WHERE SALARY LIKE '_00%' 查找在第二个和第三个位置具有 00 的任何值。
WHERE SALARY LIKE '2_%_%' 查找任何以 2 开头且长度至少为 3 个字符的值。
WHERE SALARY LIKE '%2' 查找任何以 2 结尾的值。
WHERE SALARY LIKE '_2%3' 查找第二个位置为 2 并以 3 结尾的任何值。
WHERE SALARY LIKE '2___3' 查找以 2 开头并以 3 结尾的五位数字中的任何值。

让我们看一个真实的例子,如下 CUSTOMERS 表。

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

以下示例将显示 CUSTOMERS 表中的所有记录,其中 SALARY 以 200 开头。

SQL> SELECT * FROM CUSTOMERS
WHERE SALARY LIKE '200%';

结果如下:

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
+----+----------+-----+-----------+----------+

查看笔记

扫码一下
查看教程更方便