MySql(正则表达式--电话号码格式校验)

20.在一张contacts表中,存储了用户的联系信息。请查询出所有符合以下条件的电话号码,并按id升序输出所有字段:

  1. 电话号码必须是 10 位数字。
  2. 电话号码的第一位不能以 0 开头。
  3. 电话号码的格式可以是连续的 10 位数字,或以-分隔的格式(如123-456-7890)

表contacts

id name phone_number
1 Alice 1234567890
2 Bob 0123456789
3 Charlie 123-456-7890
4 David 123-4567-890
5 Eve 9876543210

输出

id name phone_number
1 Alice 1234567890
3 Charlie 123-456-7890
5 Eve 9876543210
sql 复制代码
SELECT id,name,phone_number
FROM contacts
WHERE phone_number regexp '^([1-9][0-9]{9}|[1-9][0-9]{2}-[0-9]{3}-[0-9]{4})$'
ORDER By id
--^:匹配字符串开头
--$:匹配字符串结尾
--|:表示或,匹配两种格式中的任意一种
--连续10位数字的格式:[1-9][0-9]{9}
-- -:分隔符
--前3位(第一位非0):[1-9][0-9]{2}
--中间3位:[0-9]{3}
--最后4位:[0-9]{4}
相关推荐
無a伟24 分钟前
Redis持久化详解:RDB与AOF原理、配置、优缺点
数据库
muddjsv1 小时前
SQLite 外键进阶:CASCADE / SET NULL / 级联更新与完整性校验
数据库·sqlite
APItesterCris1 小时前
Open Claw 实战教程:5 分钟搭建京东商品自动化监控与数据分析系统
大数据·运维·数据库·数据仓库·自动化
Nturmoils2 小时前
查库存的 SQL 时灵时不灵,最后发现是 WHERE 里两个函数在打架
数据库
不想纳尼的青春3 小时前
where = 的作用?会影响性能吗?count(*) 和 count()哪个快?
数据库·oracle
倔强的石头_3 小时前
Spring Boot 接入金仓数据库:配置分层、启动自检与常见错误
数据库
黑桃小柒73 小时前
Django模型关系:从一对多到多对多全解析
数据库·django·sqlite
上海安当技术4 小时前
统一身份认证平台怎么落地?11 个异构业务系统接入 ASP 的完整实施路径
数据库·servlet·架构·kubernetes·jenkins
全栈派森4 小时前
告别大表膨胀!MySQL 冷热分离落地全过程(含 CDC 与单行锁抢占实战)
大数据·mysql
篮框坏了4 小时前
大事务 DELETE 锁表排查:删 3344 万行,一个清理任务变成周期炸弹
mysql