select
id,
name,
phone_number
from contacts
where (length(phone_number) = 10 or length(replace(phone_number,'-','')) = 10)
and substring(phone_number,1,1) <> 0 
and (phone_number regexp'[1-9]{3}-[0-9]{3}-[0-9]{4}'
or phone_number regexp'^[1-9]{1}[0-9]{9}')
order by id;