select
*
from
contacts
where
left(phone_number,1) != 0
and
case
when phone_number like '%-%'
then length(substring_index(phone_number,'-',1)) = 3
and
length(substring_index(phone_number,'-',-1)) = 4
else length(phone_number) = 10
end
order by
id
可以尝试使用这种方式来进行判断。
因为题目中要求如果电话号码带有连接符,应该是3位,3位,4位的形式。所以可以这样子做,因为我目前还没接触到大家都在说的正则表达式,所以这个笨办法可以用一下。

京公网安备 11010502036488号