LIKE 操作符是把列值与某个特定模式进行比较,有时称为模糊查询。 LIKE 操作符的语法格式如下:
< 列名 > [ NOT] LIKE < 模式串 >
其中:
¨ < 列名 > 是表中的列名。
¨ < 模式串 > 是匹配特定的模式,其取值如下:
n % (百分号):匹配零个或多个字符的序列。
n _ (下划线):精确匹配一个字符,在汉化版中也表示一个汉字。
n [] (方括号):指定范围 ([a-f]) 或集合 ([abcdef]) 中的任何单个字符。
n [^] (方括号):不属于指定范围 ([^a-f]) 或集合 ([^abcdef]) 任何单个字符。
例 6.25 下面是一些模式串的例子。
¨ LIKE ‘5[%]' 含义是 5 %。
¨ LIKE ‘[a-cde]' 含义是 a,b,c,d,e 。
¨ LIKE ‘[[]' 含义是 [ 。
¨ LIKE ‘abc[def]' 含义是 abcd,abce,abcf 。
例 6.26 查询公司中姓赵的职工号和姓名,执行下列 SQL 语句:
select zgh,zgmc
from zhigong
where zgmc like ‘ 赵 %'
或者
select zgh,zgmc
from zhigong
where zgmc like '[ 赵 ]%'
在【查询分析器】中执行结果如下:
zgh zgmc
---- --------
627 赵一凡
688 赵永刚
(所影响的行数为 2 行)
例 6.27 查询公司中姓名中有 ‘ 一 ' 的职工号和姓名,执行下列 SQL 语句:
select zgh,zgmc
from zhigong
where zgmc like ‘% 一 %'
在【查询分析器】中执行结果如下:
zgh zgmc
---- --------
354 张一
486 李五一
627 赵一凡
(所影响的行数为 3 行)
例 6.28 查询公司中姓名中没有 ‘ 一 ' 的职工号和姓名,执行下列 SQL 语句:
select zgh,zgmc
from zhigong
where zgmc not like ‘%[ 一 ]%'
在【查询分析器】中执行结果如下:
zgh zgmc
---- --------
157 李鸿
287 张国庆
309 孙越
442 胡虎
570 陈元
576 方芳
632 耿云
664 孟三
688 赵永刚
690 王四
722 黄中英
(所影响的行数为 11 行)
例 6.29 查询公司中姓名有两个字,后面一个字为 ‘ 一 ' 的职工号和姓名,执行下列 SQL 语句:
select zgh,zgmc
from zhigong
where zgmc like '_ 一 '
在【查询分析器】中执行结果如下:
zgh zgmc
---- --------
354 张一
(所影响的行数为 1 行)