oracle模糊查询sql语句,sql like模糊查询
删除评审是mysql最基本的功能,但也是其中最常用的操作,模糊检索是查询中非常常见的操作,因此模糊检索已成为必修课。
like模式
从like相似的意义上说,有_和%两种模式
_表示单个字符,通常用于查询固定长度的数据。 例如,如果检测到所有姓王的三个字符的人名,请注意“王”后面有两个名字,假设名前排名为name
select name from表名where name like '王__ ';
%表示0个字符以上的任意字符,如果检测到所有姓王的人名
选择名称从表名where name like '王% ';
检测所有人名,包括“华”字
select name from表名where name like '%华% ';
正规模式
^,是匹配字符串的起始位置,还是上面的示例中,查找所有姓王的人名
选择名称从表名where name regexp '^王';
$,查找匹配字符串末尾,例如,所有名称末尾为“明”的人名
select name from表名where name regexp '明$ ';
,\n如果匹配除\n之外的任意一个字符,并且类似于_,则不会写入sql语句
[…]可以匹配[]中的任何字符,abcdef……xyz缩短为[a-z],0123456789缩短为[0-9]。 例如,如果检索以w/z/s开头的人名
选择名称从表名where name regexp '^[wzs];
[^……]、搜索w/z/s开头以外的人名时,匹配[]中不包含的字符
选择名称从表名where name regexp '^[^wzs] ';
如果符合a|b|c、a或b或c,并且标识了绩效为A-或a或a的员工,则假设绩效列名为performance
select performance from表名where performance regexp 'A-|A|A;
重复0次以上,熟悉javascript正则的同学都知道
' str* '与st/str/strr/strrr……一致
?重复0次或1次
' str?' 能够匹配st/str
、重复一次或多次
“str”可以匹配str/strr/strrr/strrrr……
与javascript中的正则相比,这里的正则是简化版,没有惯性匹配/贪婪匹配,[]中不支持\w\s\d语法,也不支持中文,比较简单。
需要注意的是,这两种模式不要混淆。 like模式不支持正则表达式,REGEXP模式也不识别_和%