MySQL

MySQL 知识量:16 - 40 - 165

4.3 通配符><

LIKE- 4.3.1 -

在MySQL应用过程中,我们遇到的查询条件不都是完全明确的,如果条件要匹配的值是不确定的,例如在字符串中找到某个单词等,我们就要使用like操作符。

like操作符允许进行模式匹配,通过与通配符的组合,可以很好的完成字符查找等工作。

而通配符包括百分号(%)、下划线(_)等,它们实际上起到了占位符的作用。

百分号(%)- 4.3.2 -

百分号(%)是最常用的通配符之一,它表示任何字符出现任意次数。例如:

select * from student where name like '%n%';

查询名字中含有“n”的学生信息。结果为:

+----+-------+-----+--------+
| id | name  | age | sex    |
+----+-------+-----+--------+
|  1 | Susan |  11 | female |
|  5 | Jen   |  11 | female |
|  6 | Toney |  10 | male   |
+----+-------+-----+--------+

以上结果行中的name列的值都含有字母“n”,而在“n”的前后可以包含任意字符,包括另一个“n”或者什么都没有也可以。

注意:虽然%可以匹配任何字符,但是不能匹配NULL。

下划线(_)- 4.3.3 -

下划线(_)用法与百分号(%)类似,但它只能匹配一个字符。

select * from student where name like '_ob';

查询姓名由?ob组成的学生信息。结果为:

+----+------+-----+------+
| id | name | age | sex  |
+----+------+-----+------+
|  3 | Bob  |  11 | male |
+----+------+-----+------+

如果将“_ob”修改为“_ob_”,将查询不到任何内容,因为下划线“_”表示必须有字符且有一个,不能多也不能少。

使用技巧- 4.3.4 -

使用通配符要注意的几点:

  • 通配符的执行效率低,因此不能过度使用通配符,能替代的就不用通配符。

  • 将通配符放置到条件匹配字段的开始处是最低效的,除非确有必要,否则不要这样做。