用通配符进行过滤 – SQLite 学习之路 (6)

目录 Content
[hide]

一、通配符过滤

使用通配符可以进行复杂的过滤。

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

Leave a Reply

Your email address will not be published. Required fields are marked *