MySQL:where子句 使用正则表达式 |
您所在的位置:网站首页 › sql怎么用正则表达式 › MySQL:where子句 使用正则表达式 |
用到的表参考https://www.cnblogs.com/july23333/p/11763375.html where子句使用正则表达式用关键字REGEXP 1、匹配基本字符 eg1: select prod_name from products where prod_name regexp '1000'; 看上去很像like语句的作用,但是like '1000'可不会返回上面的结果,like '%1000'才可以。 like匹配的是整个列,regexp匹配列值内的文本。 eg2: select prod_name from products where prod_name regexp '.000'; 正则表达式中的'.'可以匹配任一字符。
2、OR匹配 '|'实现 eg: select prod_name from products where prod_name regexp '1000|2000';
3、匹配几个字符之一 eg: select prod_name from products where prod_name regexp '[123] ton'; [123]等效于[1|2|3],需要把OR的字符括起来,否则‘1|2|3 ton’会被MySQL理解为1或2或3 ton。 [^123]前面加^表示取反。
4、匹配范围 [1-5] [a-z]等
5、匹配特殊字符 eg: select prod_name from products where prod_name regexp '.'; 将搜索出所有行,而我们只想要含有‘.’的怎么做? 转义:select prod_name from products where prod_name regexp '\\.'; 正则表达式具有特殊意义的字符都这样转义。 为了匹配 '\' 要使用 ‘\\’;一般正则表达式实现使用单个反斜杠 \ 转义特殊字符,就能这些字符本身,但是MySQL需要两个 \\,正则表达式解释一个,MySQL用一个。
6、匹配字符类 预定义的字符集如下: eg: select prod_name from products where prod_name regexp '[:alnum:]';
7、匹配多个实例 常用正则表达式重复元字符: 注意:这些重复元字符都是规定其前面出现的字符或表达式的,如[0-9]{5}匹配连在一起任意5个数字
8、定位符 ^文本的开始(只有在集合[]中才表示否定集合) ^[0-9\\.] 表示文本以任意数字或.开始 $文本的结尾 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |