sql:like的用法

122 阅读2分钟

参考网址

blog.csdn.net/lovetimifor…

前言

sql编程中,经常会用到like来进行匹配的情况。
like中的通配符有以下3种:
<1>%:匹配0个,1个或者多个任意的字符串,想匹配啥就匹配啥。
 示例:WHERE title LIKE '%computer%' 将查找在书名中任意位置包含单词 "computer" 的所有书名。
<2>_:匹配任务单个字符
   示例: WHERE au_fname LIKE '_ean' 将查找以 ean 结尾的所有 4 个字母的名字(Dean、Sean 等)。
re正则:

图片.png

%的使用方法

%占位符表示0个或多个字符,可放在查询条件的任意位置

实例:

select * from table1 where code like%abc’;  查询以abc结尾的,当然也可以这是abc,没别的字符

Select * from table1 where code like ‘abc%’   查询以abc开头的

Select * from table1 where code like%abc%’  查询包含abc的;

Select * from table1 where code like ‘ab%c’   查询以ab开头,c结尾的

_的使用方法

_占位符表示一个字符,可放在查询条件的任意位置用法和%类似

实例:

Select * from table1 where code like ‘abc_’;  查询列值为abc开头的任意的四个字符

Select * from table1 where code like ‘_abc’; 查询列值为abc 结尾的任意四个字符

Select * from table1 where code like ‘a_b_c’; 查询列为为a?b?c的任务五个字符

Select * from table1 where code like ‘__abc’;查询列值未abc结尾的任务五个字符

re正则表达式

通过正则表达式来模糊匹配,

‘.’通配符,占位符,表示任意一个字符,类似_

只能是一个字符,多了也不行,少了也不行
mysql语法示例:

Select * from table1 where code rlike ‘abc.’;
查询列值中包含abc?的任意字符这个查询结果和like ‘abc%’相比较,
他要求是abc后面至少要有一个字符,而后者,不需要也可以直接是abc。
查询效果和like ‘abc_%’ 一样,至少需要4个字符。

Select * from table1 where code rlike ‘abc..’查询列值包含abc??的任意字符,这里至少有五个字符

‘[ ]’通配符 使用方法同正则例如[0-9],表示0到9的任意数组,[a-z]表示a-z的任意字母

mysql语法示例

Select * from table1 wehre code rlike ‘abc[a-z]’  
查询列值为abc+任意一个小写字母的字符

‘^’ 通配符,表示非例如

 mysql语法示例

 Select * from table1 wehre code rlike ‘abc[^a-z]’  
 查询列值为abc+任意一个不是小写字母的字符

‘{ }’通配符,表示占位符的位数

mysql语法示例
Select * from table1 wehre code rlike ‘abc[a-z]{2}’  
查询列值为abc+任意2个小写字母的字符