mysql 数字正则_MySql 正则表达式(查询非字符数字的记录)

mysql使用正则表达式查询数据,正则表达式关键字regexp。

数据库表user表,内有字段

1、查询name字段包含a-w字母和数字之外字符的记录

SELECT * FROM `user` WHERE `name` REGEXP '[^a-w0-9]';

2、查询包含jack的记录

SELECT * FROM `user` WHERE `name` REGEXP 'jack';

3、查询包含000的数据(正则中. 表示匹配任意字符)

SELECT * FROM `user` WHERE `name` REGEXP '.0000';

4、mysql正则大小写都会匹配,为区分大小写可使用binary关键字,如:

SELECT * FROM `user` WHERE `name` REGEXP BINARY 'G'; -- 查询包含G的记录(小写一样)

SELECT * FROM `user` WHERE `name` LIKE BINARY '%G%'; -- 查询包含G的记录(小写一样)

5、| 正则中相当于or操作符,表示匹配其中之一

SELECT * FROM `user` WHERE `name` REGEXP 'j|g'; -- 查询name字段包含j或g的记录

6、匹配特定字符,使用 [ ] 括起来的字符,将会匹配其中任意单个字符

SELECT * FROM `user` WHERE `name` REGEXP '[aed]k11'; -- [aed]定义一组字符,匹配a或e或d

7、^ 匹配字符开始的部分

SELECT * FROM `user` WHERE `name` REGEXP '^j'; -- 查询以j开始的记录

8、$ 匹配字符结束的部分

SELECT * FROM `user` WHERE `name` REGEXP 'g$' ; -- 查询以g结束的记录

9、. 匹配字符串中的任意一个字符,包括回车和换行

SELECT * FROM `user` WHERE `name` REGEXP '^j..k$'; -- 查询以j开始,k结束,中间包含两个字符的数据

10、[ ] 匹配字符结合中的任意字符

SELECT * FROM `user` WHERE `name` REGEXP '[jkg]'; -- 查询包含j、k、g任意字符的记录

11、[ ^ 字符 ] 匹配除字符集合外的任意字符

SELECT * FROM `user` WHERE `name` REGEXP '[^0-9]'; -- 查询除数字之外的记录

12、* 表示0个或多个字符

SELECT * FROM `user` WHERE `name` REGEXP 'j*k'; -- 查询包含jk或jk中间有多个字符的记录

13、+ 表示0个字符

SELECT * FROM `user` WHERE `name` REGEXP 'j+k'; -- 查询包含jk的记录

14、字符串{ } 表示字符串出现的次数

SELECT * FROM `user` WHERE `name` REGEXP 'k{2}'; -- 查询k连续出现2次的记录

15、字符串 { M, N } 表示最少出现M次,最多出现N次

SELECT * FROM `user` WHERE `name` REGEXP 'ck{3,6}';

MYSQL中自带通配符(LIKE关键词),%可以表示任意长度的字符(包括0), -可以表示单个字符

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值