- 电话号码必须是 10 位数字。
- 电话号码的第一位不能以 0 开头。
- 电话号码的格式可以是连续的 10 位数字,或以-分隔的格式(如123-456-7890)
| 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 |
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}