900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 《MySQL必知必会》学习笔记——第八章(用通配符过滤)

《MySQL必知必会》学习笔记——第八章(用通配符过滤)

时间:2020-09-13 10:52:01

相关推荐

《MySQL必知必会》学习笔记——第八章(用通配符过滤)

文章目录

8.1 LIKE操作符8.1.1 % 通配符8.1.2 _ 通配符8.2 使用通配符的技巧总结:

前文连接:

《MySQL必知必会》——书中表的生成

《MySQL必知必会》——第三章(了解数据库和表) 关键词:USE、SHOW

《MySQL必知必会》——第四章(检索数据) 关键词:SELECT

《MySQL必知必会》——第五章(排序检索数据) 关键词:ORDER BY

《MySQL必知必会》——第六章(过滤数据) 关键词:WHERE

《MySQL必知必会》——第七章(数据过滤) 关键词:WHERE、AND、OR、IN

前面介绍的过滤数据,都是已知具体数据进行过滤,但有时我们需要一些模糊过滤,例如选出某列中包含特定文本的行(如选取文本中包含like的行),这时我们就需要用通配符去做,具体看下面:

8.1 LIKE操作符

LIKE操作符是WHERE语句下的子句操作符,其和通配符一起使用来对数据进行模糊匹配。

8.1.1 % 通配符

% 通配符表示:任意字符出现任意次数,即匹配任意字符串,我们具体看看就懂:

# jet% 会去匹配任意以jet开头的词!SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 'jet%'

通配符可以在任意位置使用,也可以使用多个通配符,我们举例看看:

# %anvil% 匹配任意位置出现anvil的词!SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '%anvil%'

# s%e 匹配以s开头,以e结尾的任意词SELECT prod_id, prod_name FROM products WHERE prod_name LIKE 's%e';

注意:

%可以匹配0个、1个或任一个字符串但不匹配NULL,即当某行为NULL时,是匹配不上的

8.1.2 _ 通配符

_(下划线)通配符作用和%通配符一样,仅仅是只能匹配一个字符,而%通配符可以匹配任意多个字符!举例看看:

# _ ton anvil 仅仅匹配下划线处只有一位字符,并且后面要一致的字符串!,如下图所示:SELECT prod_id, prod_name FROM products WHERE prod_name LIKE '_ ton anvil';

注意:

%可以匹配0、1、任意多个字符_只能匹配一个字符,不能多也不能少

8.2 使用通配符的技巧

通过上面的举例,我们发现通配符是很有用的,但也是有代价的,因为通配符的搜索处理是通过遍历数据得到的,和前面过滤数据相比慢很多!

技巧:

若其他操作也可以达到目的,尽量不要使用通配符在使用通配符时,尽量不要将其放在搜索模式的开头,这个位置是最慢的注意通配符放置的位置!

总结:

SELECT 列名 FROM 表名 WHERE 列名 LIKE ‘通配符’:匹配某字符的行

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。