MySQL 知识量:16 - 40 - 165
在MySQL应用过程中,我们遇到的查询条件不都是完全明确的,如果条件要匹配的值是不确定的,例如在字符串中找到某个单词等,我们就要使用like操作符。
like操作符允许进行模式匹配,通过与通配符的组合,可以很好的完成字符查找等工作。
而通配符包括百分号(%)、下划线(_)等,它们实际上起到了占位符的作用。
百分号(%)是最常用的通配符之一,它表示任何字符出现任意次数。例如:
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。
下划线(_)用法与百分号(%)类似,但它只能匹配一个字符。
select * from student where name like '_ob';
查询姓名由?ob组成的学生信息。结果为:
+----+------+-----+------+ | id | name | age | sex | +----+------+-----+------+ | 3 | Bob | 11 | male | +----+------+-----+------+
如果将“_ob”修改为“_ob_”,将查询不到任何内容,因为下划线“_”表示必须有字符且有一个,不能多也不能少。
使用通配符要注意的几点:
通配符的执行效率低,因此不能过度使用通配符,能替代的就不用通配符。
将通配符放置到条件匹配字段的开始处是最低效的,除非确有必要,否则不要这样做。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6