LIKE关键字结合通配符(如%和_)进行模式匹配。SELECT * FROM table WHERE column LIKE '%variable%';SQL 模糊查询(LIKE 关键字)详解
在数据库操作中,SQL 的模糊查询是一种非常强大的工具,它允许我们使用特殊的通配符来搜索列中的指定模式。LIKE 关键字用于在WHERE 子句中搜索列中的指定模式。
一、LIKE 关键字的基本语法
SELECT column1, column2, ... FROM table_name WHERE column_name LIKE pattern;
pattern 是用于搜索的指定模式,它可以包含以下两种通配符:
%:代表零个或多个字符。a% 可以匹配以 "a" 开头的任何字符串,如 "apple"、"ape" 等;%a 可以匹配以 "a" 结尾的任何字符串,如 "capital"、"alpha" 等;%a% 可以匹配任何包含 "a" 的字符串,如 "banana"、"abracadabra" 等。
_:代表单个字符。a_ 可以匹配以 "a" 开头且后面跟着一个任意字符的字符串,如 "ab"、"ac" 等;_a 可以匹配以一个任意字符开头且以 "a" 结尾的字符串,如 "ba"、"ca" 等;_a_ 可以匹配任何包含 "a" 且 "a" 前后各有一个字符的字符串,如 "aba"、"aca" 等。

二、示例
假设有一个名为employees 的表,结构如下:
| id | name | position | department |
| 1 | Alice | Software Eng. | R&D |
| 2 | Bob | Sales Rep. | Sales |
| 3 | Charlie | Project Lead | R&D |
| 4 | David | Manager | Sales |
| 5 | Eve | QA Engineer | QA |
(一)查询名字以 “A” 开头的员工
SELECT * FROM employees WHERE name LIKE 'A%';
结果:
| id | name | position | department |
| 1 | Alice | Software Eng. | R&D |
(二)查询职位中包含 “Sales” 的员工
SELECT * FROM employees WHERE position LIKE '%Sales%';
结果:

| id | name | position | department |
| 2 | Bob | Sales Rep. | Sales |
| 4 | David | Manager | Sales |
(三)查询姓氏为三个字符的员工
SELECT * FROM employees WHERE name LIKE '___';
结果:
| id | name | position | department |
| 1 | Alice | Software Eng. | R&D |
| 2 | Bob | Sales Rep. | Sales |
| 3 | Charlie | Project Lead | R&D |
| 4 | David | Manager | Sales |
| 5 | Eve | QA Engineer | QA |
三、相关问题与解答
问题 1:如果要查询名字中第二个字符是 “o” 的员工,应该如何编写 SQL 语句?
解答:可以使用_o% 作为模式进行查询,SQL 语句如下:
SELECT * FROM employees WHERE name LIKE '_o%';
这样就能筛选出名字中第二个字符为 “o” 的员工信息。

问题 2:如何查询职位不是以 “E” 开头且名字中包含 “e” 的员工?
解答:可以使用组合条件来实现,SQL 语句如下:
SELECT * FROM employees WHERE position NOT LIKE 'E%' AND name LIKE '%e%';
此语句先通过position NOT LIKE 'E%' 排除职位以 “E” 开头的员工,再通过name LIKE '%e%' 筛选出名字中包含 “e” 的员工,最终得到符合条件的员工信息。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/170346.html