mysql正则匹配手机号
时间: 2023-09-04 15:15:16 浏览: 405
可以使用MySQL的正则表达式函数REGEXP来匹配手机号码,如下示例:
```sql
SELECT * FROM `table_name` WHERE `phone_number` REGEXP '^1[3-9]\\d{9}$';
```
解释:
* `^1[3-9]` 表示手机号码的前两位必须是1和3到9中的任意一个数字;
* `\\d{9}` 表示接下来的9位必须是数字;
* `$` 表示字符串的结尾。
因此,这个正则表达式可以匹配以1开头的11位数字串,即符合手机号码格式的字符串。
相关问题
sql 正则 判断是否是 手机号
在使用SQL语句进行手机号验证时,可以使用正则表达式来判断一个字符串是否是手机号。在正则表达式中,我们可以通过匹配11位数字的方式来判断一个字符串是否是手机号。
以下是一个基于MySQL语句的例子:
SELECT * FROM users WHERE phone_number REGEXP '^1[3-9][0-9]{9}$';
在这个例子中,我们使用了正则表达式 '^1[3-9][0-9]{9}$' 来匹配一个手机号。具体来说,'^'表示字符串的开头,'1'表示手机号的开头必须是数字1,'[3-9]'表示除去1以外,手机号的第二位可以是3到9之间任意一个数字,'[0-9]{9}'表示手机号的后9位必须是数字,'$'表示字符串的结尾,也就是手机号必须是11位数。
另外,如果想在SQL语句中使用正则表达式,需要注意的是不同的数据库可能会有一些语法上的差异,需要根据具体的数据库进行调整。例如在Oracle中使用正则表达式需要使用'REGEXP_LIKE'函数来进行匹配。
总之,在使用SQL语句进行手机号验证时,可以使用正则表达式来判断一个字符串是否是手机号,并且需要注意不同数据库下正则表达式的使用方法可能会有所不同。
myaql 使用正则表达式写手机号验证,要求以手机号152,153,159,177,199开头,满足11位
可以使用MySQL中的REGEXP函数进行正则表达式匹配,具体可以按照以下方式实现:
```sql
SELECT * FROM table_name WHERE phone_number REGEXP '^(152|153|159|177|199)\\d{8}$';
```
其中,`table_name`是你的表名,`phone_number`是你存储手机号的列名。正则表达式中,`^`表示匹配字符串的开始,`(152|153|159|177|199)`表示以这几个号码段开头,`\\d{8}`表示匹配8位数字,`$`表示匹配字符串的结束。
这条SQL语句会查找满足以以上号码段开头,且手机号码长度为11位的记录。
阅读全文