题目描述

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

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

解题思路

使用正则表达式 -- regexp
① 匹配纯数字: '^[1-9][0-9]{9}$'
② 匹配分隔符形式:'^[1-9][0-9]{2}-[0-9]{3}-[0-9]{4}$'

^表示开头, $表示结尾,{n}表示出现次数

提交代码

select id, name, phone_number
from contacts
where phone_number regexp '^[1-9][0-9]{9}$'  -- 注意1开头
or phone_number regexp '^[1-9][0-9]{2}-[0-9]{3}-[0-9]{4}$' -- 注意1开头