大佬教程收集整理的这篇文章主要介绍了mysql 正则表达式查询含有非数字和字符的记录,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
比如我们有一张school表,里面有一个字段@R_675_7303@_name,现在我们要查询@R_675_7303@_name字段中包含a-w字母和数字以外字符的记录,那么sql该如何写呢?请看下面的写法:
@H_904_0@mysqL中正则表达式使用regexp关键字,[^a-w0-9]表示匹配除了a-w字母和数字以外的字符。下面向大家介绍MysqL正则表达式的其他使用实例:
匹配名称含有1000的所有行
select * from a1 WHERE name regexp '1000'
匹配以000结尾的所有行,(.正则中表示:匹配任意一个字符)
select * from a1 WHERE name regexp '.000'
select * from a1 WHERE name LIKE binary '%J%' #使用LIKE+通配符匹配大写J select * from a1 WHERE name regexp binary 'j' #使用正则匹配小写j
|为正则表达式的OR操作符,表示匹配其中之一
select * from a1 WHERE name regexp binary 'a|j|G'
匹配特定字符,使用[]括起来的字符,将会匹配其中任意单个字符。
select * from a1 WHERE name regexp '[12]st'
以上'[12]st'正则表达式,[12]定义一组字符,它的意思是匹配1或2
^ 匹配字符开始的部分
SELEct * from info where name regexp '^L'; //从info表name字段中查询以L开头的记录
$ 匹配字符结束的部分
SELEct * from info where name regexp 'c$'; //从info表name字段中查询以c结尾的记录
. 匹配字符串中的任意一个字符,包括回车和换行
[字符集合]匹配字符集合中的任意字符
SELEct * from info where name regexp '[ceo]'; //从info表name字段中查询包含c、e、o三个字母中任意一个的记录
[^字符集合]匹配除了字符集合外的任意字符
s1|s2|s3 匹配s1s2s3中的任意一个
SELEct * from info where name regexp 'ic'; //从info表name字段中查询包含'ic'的记录
* 代表多个该字符前的字符,包括0个或1个
SELEct * from info where name regexp 'a*c'; 从info表name字段中查询c之前出现过a的记录
+ 代表多个该字符前的字符,包括1个
SELEct * from info where name regexp 'a+c';//从info表name字段中查询c之前出现过a的记录
字符串{N} 字符串出现N次
@H_904_0@mysqL中自带通配符(LIKE关键词),%可以表示任意长度的字符(包括0),-可以表示单个字符感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
以上是大佬教程为你收集整理的mysql 正则表达式查询含有非数字和字符的记录全部内容,希望文章能够帮你解决mysql 正则表达式查询含有非数字和字符的记录所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。