一、通配符过滤
使用通配符可以进行复杂的过滤。
1. LIKE
如果过滤的值未知,那么可以使用 LIKE 指明利用通配符匹配而不是简单的相等匹配。
1.1 百分号 “%” 通配符
% 表示任何字符出现的任意次数。
sqlite> SELECT prod_id,prod_name ...> FROM Products ...> WHERE prod_name LIKE 'Fish%'; prod_id prod_name ---------- ----------------- BNBG01 Fish bean bag toy sqlite>
通配符可以在搜索模式中任意位置使用,并可以使用多个。
sqlite> SELECT prod_id,prod_name ...> FROM Products ...> WHERE prod_name LIKE '%bean bag%'; prod_id prod_name ---------- ----------------- BNBG01 Fish bean bag toy BNBG02 Bird bean bag toy BNBG03 Rabbit bean bag t sqlite>
%还能匹配0个字符,%代表搜索模式中给定位置的0个、1个或多个字符。当然%也匹配空格!但是并不匹配 NULL !
1.2 下划线 “_” 通配符
下划线”_”通配符只匹配一个字符,而不是多个字符!
sqlite> SELECT prod_id,prod_name ...> FROM Products ...> WHERE prod_name LIKE '__ inch teddy bear'; prod_id prod_name ---------- ------------------ BR02 12 inch teddy bear BR03 18 inch teddy bear sqlite>
1.3 方括号 “[]” 通配符
SQLite 不支持 [] 通配符!方括号用来制定一个字符集,它必须匹配制定位置的一个字符。(正则表达式?)
2. 使用技巧
- 不要过度使用通配符,其他操作符能达到的,就使用其他操作符
- 不要在搜索模式开始处使用通配符,否则是最慢的
- 自己检查通配符位置,否则不会返回想要的数值
二、扩展阅读
关键字: LIKE