mysql数据库模糊查询语句,oracle模糊查询sql语句
前言
在mysql中实现混淆查询的是like和regexp。 本文通过实例代码详细介绍了两者的使用方法。 和编辑一起学习吧。
like模式
从like相似的意义上说,有_和%两种模式
_表示单个字符,通常用于查询固定长度的数据。 例如,如果检测到所有姓王的三个字符的人名,请注意“王”后面有两个名字,假设名前排名为name
? 1select name from表名where name like '王__ ';
%表示0个字符以上的任意字符,如果检测到所有姓王的人名
? 1选择名称从表名where name like '王% ';
检测所有人名,包括“华”字
? 1选择名称从表名where name like '%华% ';
正规模式
^,是匹配字符串的起始位置,还是上面的示例中,查找所有姓王的人名
? 1选择名称从表名where name regexp'^王';
$,查找匹配字符串末尾,例如,所有名称末尾为“明”的人名
? 1select name from表名where name regexp '明$ ';
,\n如果匹配除\n之外的任意一个字符,并且类似于_,则不会写入sql语句
[…]可以匹配[]中的任何字符,abcdef……xyz缩短为[a-z],0123456789缩短为[0-9]。 例如,如果检索以w/z/s开头的人名
? 1选择名称从表名where name regexp'^[wzs];
[^……]、搜索w/z/s开头以外的人名时,匹配[]中不包含的字符
? 1选择名称从表名where name regexp'^[^wzs] ';
如果符合a|b|c、a或b或c,并且标识了绩效为A-或a或a的员工,则假设绩效列名为performance
? 1select performancefrom表名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模式也不识别_和%
总结
以上是这篇文章的所有内容。 希望这篇文章的内容能给大家的学习和工作带来一定的帮助。 如果有疑问的话请用信息交流。