select id,name,phone_number from contacts c where (c.phone_number like '___-___-____' or length(c.phone_number)=10 ) and (c.phone_number like '1%' or c.phone_number like '2%' or c.phone_number like '3%' or c.phone_number like '4%' or c.phone_number like '5%' or c.phone_number like '6%' or c.phone_number like '7%' or c.phone_number like '8%' or c.phone_number like '9%' ) order by id
也许你没有学过正则表达式,但是一定学过 name like '%dd_'这个简单的通配符,
%代表任意数量的字符
_代表一个字符
length函数获取长度
(正式代码还是推荐正则表达式的,如果在写题的时候可以强出解,反正sql没有时间复杂度要求)