📅  最后修改于: 2023-12-03 15:22:47.830000             🧑  作者: Mango
在 SQL 中,可以使用 LIKE 运算符来匹配字符串的任何部分。LIKE 运算符用于比较以字符串形式存储的数据,可以使用通配符来匹配任意字符。
在 LIKE 命令中,有两种通配符:百分号(%)和下划线(_)。
例如,以下命令将返回所有以字母a开头和以字母c结尾的字符串。
SELECT * FROM table_name WHERE column_name LIKE 'a%c';
假设有以下数据表:
+----+----------+
| id | name |
+----+----------+
| 1 | Adam |
| 2 | Alice |
| 3 | Bob |
| 4 | Charles |
| 5 | Dave |
| 6 | David |
| 7 | Eve |
| 8 | Frank |
| 9 | George |
+----+----------+
SELECT * FROM table_name WHERE name LIKE 'a%';
结果:
+----+--------+
| id | name |
+----+--------+
| 1 | Adam |
| 2 | Alice |
+----+--------+
SELECT * FROM table_name WHERE name LIKE '%e';
结果:
+----+-------+
| id | name |
+----+-------+
| 7 | Eve |
+----+-------+
SELECT * FROM table_name WHERE name LIKE '%a%';
结果:
+----+----------+
| id | name |
+----+----------+
| 1 | Adam |
| 2 | Alice |
| 4 | Charles |
| 6 | David |
| 7 | Eve |
| 8 | Frank |
| 9 | George |
+----+----------+
SELECT * FROM table_name WHERE name LIKE '_a___';
结果:
+----+-------+
| id | name |
+----+-------+
| 2 | Alice |
| 7 | Eve |
+----+-------+
使用 LIKE 命令时,一定要注意通配符的位置,不然会导致意想不到的结果。例如:
SELECT * FROM table_name WHERE name LIKE '%a';
将会匹配所有以字母a结尾的字符串,而不是包含字母a的字符串。如果要匹配包含字母a的字符串,应该使用:
SELECT * FROM table_name WHERE name LIKE '%a%';
另外,LIKE 命令通常比其他比较运算符(如=、>、<等)运行较慢,因为它需要在所有匹配的记录中遍历每个字符。因此,在处理大量数据时,应该尽量避免使用 LIKE 命令。