百分号和下划线是通配符,它们在通配字符串中有特殊含义,因此,如果要匹配字符串中的百分号和下划线,就需要在通配字符串中使用右斜线 (“ \ ” ) 对百分号和下划线进行转义,例如,“ \% ” 匹配百分号字面值,“ \_ ” 匹配下划线字面值。
例如,查询 student 表中 name 字段值包括“%”的记录。在查询之前,首先向 student 表中添加一条记录,执行结果如下所示:
mysql> INSERT INTO student(name,grade,gender)
-> VALUES('sun%er',95,'男');
Query OK, 1 row affected (0.01 sec)
从上面的执行语句中可以看到,添加的新记录其 name 字段值为 “ sun%er ” ,包含一个百分号字面值。接下来通过 SELECT 语句查出这条记录,SQL语句如下所示:
SELECT * FROM student WHERE name LIKE '%\%%';
从上面的执行语句可以看到,在通配字符串 “ %\%% ” 中,“ \% ” 匹配百分号字面值,第一个和第三个百分号匹配任意个数的字符,执行结果如下所示:
mysql> SELECT * FROM student WHERE name LIKE '%\%%';
+----+--------+-------+--------+
| id | name | grade | gender |
+----+--------+-------+--------+
| 10 | sun%er | 95 | 男 |
+----+--------+-------+--------+
1 row in set (0.01 sec)
从查询结果可以看到,查出了 name字段值为 “ sun%er ” 的新记录。