2018-03-01  171 views 发表评论

mysql正则匹配某字段是否为手机号

 标签:

有张用户表,由于历史原因有些用户名是用户自己定义的,这就有用户拿自己手机号做用户名。要查询出这些用户就是用正则匹配查询出来。如下:

SELECT * FROM `dt_users` WHERE `user_name` REGEXP "^[1][35678][0-9]{9}$" ORDER BY `reg_time` DESC ;

还有一种含有手机号的情况:

SELECT * FROM `dt_users` WHERE `user_name` REGEXP ".[1][35678][0-9]{9}." ORDER BY `reg_time` DESC;( . 的意思是所有字符)

顺带把这些用户名用手机号的在其前面加个字符:

UPDATE `dt_users` set `user_name` = concat('00',`user_name`) WHERE `user_name` REGEXP "^[1][35678][0-9]{9}$";

 

给我留言

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: