select * 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 ASC
'^[1-9][0-9]{9}$|^[1-9][0-9]{2}-[0-9]{3}-[0-9]{4}$'
这个正则表达式的作用如下:
- ^ 表示匹配字符串的开头,$ 表示匹配字符串的结尾,确保整个字符串都符合指定的模式。
- [1-9] 表示电话号码的第一位不能是 0,必须是 1 到 9 之间的数字。
- [0-9]{9} 表示接下来的 9 位可以是任意数字,与开头的 [1-9] 组合形成一个完整的 10 位数字电话号码。
- | 是正则表达式的“或”操作符,用于分隔两种不同的匹配模式。
- ^[1-9][0-9]{2}-[0-9]{3}-[0-9]{4}$ 表示电话号码可以是以 “-” 分隔的格式,其中第一部分是 3 位数字,第二部分是 3 位数字,第三部分是 4 位数字。
ASC 表示按照元素进行升序
DESC为按照元素进行降序