MySQL LIKE 子句
LIKE 子句是在 MySQL 中用于在 WHERE 子句中进行模糊匹配的关键字。它通常与通配符一起使用,用于搜索符合某种模式的字符串
LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的
使用 LIKE 子句从数据表中读取数据,语法如下:
SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;
参数说明:
column1
,column2
, ... 是你要选择的列的名称,如果使用*
表示选择所有列table_name
是你要从中查询数据的表的名称column_name
是你要应用LIKE
子句的列的名称pattern
是用于匹配的模式,可以包含通配符
更多说明:
- 你可以在 WHERE 子句中指定任何条件
- 你可以在 WHERE 子句中使用LIKE子句
- 你可以使用LIKE子句代替等号 =
- LIKE 通常与 % 一同使用,类似于一个元字符的搜索
- 你可以使用 AND 或者 OR 指定一个或多个条件
- 你可以在 DELETE 或 UPDATE 命令中使用 WHERE...LIKE 子句来指定条件
以下示例在之前创建的RoboMaster数据库下进行操作
当前数据库数据
mysql> SELECT * FROM Username;
+------+------------+-----------+
| id | Username | Password |
+------+------------+-----------+
| 1 | steins_xin | 123456 |
| 2 | xin | 123456789 |
+------+------------+-----------+
2 rows in set (0.01 sec)
1. 百分号通配符 %:
% 通配符表示零个或多个字符。例如,'s%' 匹配以字母 's' 开头的任何字符串。
SELECT * FROM username WHERE username LIKE 's%';
结果:
mysql> SELECT * FROM username WHERE username LIKE 's%';
+------+------------+----------+
| id | Username | Password |
+------+------------+----------+
| 1 | steins_xin | 123456 |
+------+------------+----------+
1 row in set (0.00 sec)
- 下划线通配符 _:
_ 通配符表示一个字符。例如,'_s%' 匹配第二个字母为 's' 的任何字符串
SELECT * FROM username WHERE username LIKE '__e%';
结果:
mysql> SELECT * FROM username WHERE username LIKE '__e%';
+------+------------+----------+
| id | Username | Password |
+------+------------+----------+
| 1 | steins_xin | 123456 |
+------+------------+----------+
1 row in set (0.00 sec)
3. 组合使用 % 和 _:
SELECT * FROM username WHERE username LIKE 's%i_';
以上 SQL 语句将匹配以字母 's' 开头,然后是零个或多个字符,接着是 'i',最后是一个任意字符的字符串,如 'steins_xin'、's_xin'
结果:
mysql> SELECT * FROM username WHERE username LIKE 's%i_';
+------+------------+----------+
| id | Username | Password |
+------+------------+----------+
| 1 | steins_xin | 123456 |
+------+------------+----------+
1 row in set (0.00 sec)