sql中通配符

LIKE

----确定给定的字符串是否与指定的模式匹配。模式可以包含常规字符和通配符字符。模式匹配过程中,常规字符必须与字符串中指定的字符完全匹配。然而,可使用字符串的任意片段匹配通配符。与使用 和 != 字符串比较运算符相比,使用通配符可使 LIKE 运算符更加灵活。

*
----c*c代表cc,cBc,cbc,cabdfec等,它同于DOS命令中的通配符,代表多个字符

% 

----包含零个或更多字符的任意字符串。 WHERE title LIKE '%computer%' 将查找处于书名任意位置的包含单词 computer 的所有书名。

%c%代表agdcagd等这种方法在很多程序中要用到,主要是查询包含子串的。

_(下划线) 

----任何单个字符。 WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 个字母的名字(DeanSean 等)。

[ ] 

----指定范围 ([a-f]集合([abcdef]) 中的任何单个字符。 WHERE au_lname LIKE '[C-P]arsen' 将查找以arsen 结尾且以介于 与 之间的任何单个字符开始的作者姓氏,例如,CarsenLarsenKarsen 等。

[^] 

----不属于指定范围 ([a-f]) 或集合 ([abcdef]) 的任何单个字符。 WHERE au_lname LIKE 'de[^l]%' 将查找以 de 开始且其后的字母不为 的所有作者的姓氏。

[*]
 ----a[*]a代表a*a,代替*特殊字符

 ?
---- b?b代表brb,bFb等同于DOS命令中的?通配符,代表单个字符
 #
---- k#k代表k1k,k8k,k0k大致同上,不同的是代只能代表单个数字

注释

当使用 LIKE 进行字符串比较时,模式字符串中的所有字符都有意义,包括起始或尾随空格。如果查询中的比较要返回包含"abc "abc 后有一个空格)的所有行,则将不会返回包含"abc"abc 后没有空格)的列所在行。但是可以忽略模式所要匹配的表达式中的尾随空格。如果查询中的比较要返回包含"abc"abc 后没有空格)的所有行,则将返回以"abc"开始且具有零个或多个尾随空格的所有行。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章