目录
*本文涉及概念来源于图灵程序设计丛书,数据库系列——《MySQL必知必会》
1.什么是通配符?
通配符(wildcard) :用来匹配值的一部分的特殊字符。简单来说,就是在进行数据库查找时,并不总是明确知道要查找的数据的具体值。如下面场景(题目来源于牛客网),需要读取university一列中带有“北京”字的信息。
为了在搜索语句中使用通配符,需要用到LIKE操作符,作用是指示MySQL利用通配符进行匹配,而不是直接相等匹配(WHERE university = '北京大学'就是直接进行相等匹配)。
2.通配符之→百分号(%)
直接用上面提到的搜索学校中带有“北京”二字的用户信息的例子。
SELECT *
FROM user_profile
WHERE university LIKE '%北京%';
结果会输出所有学校为“北京大学、北京师范大学”(带有北京二字)的用户信息。
3.通配符之→下划线(_)
下划线的用途跟%一样,区别是下划线只能匹配单个字符,百分号可以匹配0、1或多个字符。
下图可以发现,下划线无法匹配到(.5 ton anvil)这一行
4.通配符使用注意事项
①如果其他操作符(如AND、OR、IN、NOT)等可以达到检索目的,不要使用通配符,会加大搜索时间。
②确实需要使用通配符时,尽量不要用在搜索模式的开始,这样是最慢的(容易理解,用在最开始相当于在整个表中用通配符进行匹配)。