Ответ 1
Использование:
SELECT telephone_number
FROM table
WHERE telephone_number REGEXP '^1[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{4}$';
Ссылка:
SELECT telephone_number
FROM table
WHERE telephone_number REGEXP '^1[() -]*999[() -]*999[() -]*9999$';
как сделать так, чтобы он был действительным для любого формата чисел и любого числа как
407-888-0909
1(408)998-7654
7776654433
876-7788
прямо сейчас его единственная действительная для 1-999-999-9999
Использование:
SELECT telephone_number
FROM table
WHERE telephone_number REGEXP '^1[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{4}$';
Ссылка:
Не очень удобно хранить номера телефонов в базе данных с пробелами, тире, круглыми скобками и т.д. Наиболее эффективным способом является усечение всего этого мусора до простого десятизначного числа. Таким образом, вы можете фактически сохранить номер в столбце на основе INTEGER вместо VARCHAR.
SELECT telephone_number
FROM table
WHERE telephone_number REGEXP '[1]?[(]?[[:DIGIT:]]{3}[)]?[-]?[[:DIGIT:]]{3}[-]?[[:DIGIT:]]{4}'