SQL中的常用通配符有“ % ”、“ _ ”和“ [ ] ”三个。当使用这三个通配符进行过滤时,需要与LIKE连用。补充一点是,LIKE操作符与通配符连用进行搜索时,LIKE作为谓语,而且通配符搜索只可以用于字符串,非文本的数据类型字段不能通过通配符搜索。
“%”通配符:可以替代任意字符:
SELECT prod_id, prod_name FROM Products WHERE prod_name LIKE ‘Fish% ;
#查找出products表中产品名含有fish的产品ID和产品名。
“_”通配符:可以替代单个通配符:
SELECT prod_id, prod_name FROM Products WHERE prod_name
LIKE ‘_ inch teddy bear’;
#查找出Products表中产品名含有“inch teddy bear”且这个字符串前面只有一个字符的产品名和产品ID。
“ % ”和“ _ ”的区别:%可以代表任意个字符串,而_仅代表一个,所以相同位置使用‘%’可以检索出‘_’能检索的所有内容,但‘_’未必能检索出‘%’能检索的所有结果。
“ [ ] ”通配符匹配括号内的单个字符:
SELECT cust_contact FROM Customers WHERE cust_contact LIKE ‘[JM]%’
ORDER BY cust_contact;
#检索以J或者M开头的消费者,并由A到Z的顺序排序。
脱字号“ ^ ”:相当于否定操作符——NOT
SELECT cust_contact FROM Customers WHERE cust_contact
LIKE ‘^[JM]’ORDER BY cust_contact;
#与语句:SELECT cust_contact FROM Customers WHERE cust_contact NOT LIKE ‘[JM]’ ORDER BY cust_contact;效果一致。查找消费者不以J或M开头的名字。
SQL通配符通常可以简化语法,但是牺牲了程序性能,而且通配符的位置至关重要,也许一个疏忽,可能输出相反的结果,进而导致了错误。因此通配符的使用尽量不要放置在开始处,或者尽可能不使用。