MySQL LIKE和NOT LIKE关键字

mysql> use test;
Database changed
mysql> create table student(age int(4), name varchar(20), address varchar(20));
Query OK, 0 rows affected (0.22 sec)

mysql> insert into student values(12, 'Jack', 'BeiJing'), (19, 'Mike', 'TianJin'), (21, 'Rose', 'ZhuHai'), (23, 'Ann', 'ShangHai'), (27, 'Alis', 'ShenZhen');
Query OK, 5 rows affected (0.08 sec)
Records: 5  Duplicates: 0  Warnings: 0

mysql> select * from student;
+------+------+----------+
| age  | name | address  |
+------+------+----------+
|   12 | Jack | BeiJing  |
|   19 | Mike | TianJin  |
|   21 | Rose | ZhuHai   |
|   23 | Ann  | ShangHai |
|   27 | Alis | ShenZhen |
+------+------+----------+
5 rows in set (0.07 sec)

mysql>

mysql> select * from student where name='Jack';
+------+------+---------+
| age  | name | address |
+------+------+---------+
|   12 | Jack | BeiJing |
+------+------+---------+
1 row in set (0.00 sec)

# like关键字是要完全匹配,与name='Jack'的作用相同

mysql> select * from student where name like 'Jack';
+------+------+---------+
| age  | name | address |
+------+------+---------+
|   12 | Jack | BeiJing |
+------+------+---------+
1 row in set (0.04 sec)

mysql>

mysql> select * from student where address='S%';
Empty set (0.00 sec)

# like匹配以S开头的address mysql
> select * from student where address like 'S%'; +------+------+----------+ | age | name | address | +------+------+----------+ | 23 | Ann | ShangHai | | 27 | Alis | ShenZhen | +------+------+----------+ 2 rows in set (0.00 sec) mysql>

mysql> insert into student values(55, 'Make', 'GuangZhou');
Query OK, 1 row affected (0.02 sec)

mysql> select * from student;
+------+------+-----------+
| age  | name | address   |
+------+------+-----------+
|   12 | Jack | BeiJing   |
|   19 | Mike | TianJin   |
|   21 | Rose | ZhuHai    |
|   23 | Ann  | ShangHai  |
|   27 | Alis | ShenZhen  |
|   55 | Make | GuangZhou |
+------+------+-----------+
6 rows in set (0.00 sec)

# like匹配'_'表示匹配一个字符

mysql> select * from student where name like 'M_ke';
+------+------+-----------+
| age  | name | address   |
+------+------+-----------+
|   19 | Mike | TianJin   |
|   55 | Make | GuangZhou |
+------+------+-----------+
2 rows in set (0.00 sec)

mysql>

# not like表示“不匹配”关键字

mysql> select * from student where name not like 'M_ke'; +------+------+----------+ | age | name | address | +------+------+----------+ | 12 | Jack | BeiJing | | 21 | Rose | ZhuHai | | 23 | Ann | ShangHai | | 27 | Alis | ShenZhen | +------+------+----------+ 4 rows in set (0.00 sec) mysql>
原文地址:https://www.cnblogs.com/Robotke1/p/3054360.html