LIKE操作符
前面介绍的,过滤中使用的值都是确定的。但如何搜索名字中包含anvil的产品呢?这个时候就必须使用通配符了。可以利用通配符创建比较特定数据的搜索模式。
通配符:用来匹配值的一部分的特殊字符;
搜索模式:由字面值,通配符或两者组合构成的搜索条件;
通配符必须和LIKE配合使用。LIKE指示MySQL,和后面的搜索模式,利用通配符进行匹配,而不是直接相等匹配进行比较;
百分号(%)通配符
%表示任何字符出现任意次数(包括0次)。
输入:SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE 'jet%';
分析:找出所有以jet开头的产品;
区分大小写:搜索是可以区分大小写的,即'jet%'和'JetPack'将不匹配;
输入:SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE '%avil%';
分析:通配符可以在搜索模式中任意位置使用,并且可以使用多个通配符;
输入:SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE 's%e';
分析:通配符可以在搜索模式的中间;
注意尾空格:例如,如果anvi后面有一个或多个空格,则LIKE'%anvil'将不会匹配到它。可以在anvi后面加个%,更好的方法是使用函数去掉空格;
注意NULL:%是匹配不到NULL的。LIKE '%'是匹配不到NULL的;
下划线(_)通配符
下划线与%用途一样,但下划线只能匹配一个字符;
输入:SELECT prod_id,prod_name
FROM products
WHERE prod_name LIKE '_ton anvil';
使用通配符的技巧
通配符搜索的处理要比前面介绍的更花时间。
1.不要过度使用通配符,能不用就不用;
2.如果一定要使用通配符,除非有必要,否则不要把通配符放在搜索模式的开始处。放在开始处,搜索是最慢的;
3.一定要注意通配符放的位置;

本文介绍了SQL中使用LIKE操作符结合通配符进行模糊查询的方法。包括百分号(%)匹配任意长度的字符串,下划线(_)匹配单个字符,以及如何高效地使用这些通配符提高查询效率。
925

被折叠的 条评论
为什么被折叠?



