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}$';
参照:
電話番号をスペース、ダッシュ、括弧などを使用してデータベースに保存するのは賢明ではありません。最も効率的な方法は、すべてのゴミを単純な10桁の数字に切り捨てることです。そうすれば、VARCHARではなくINTEGERベースの列に実際に数値を格納できます。
SELECT telephone_number
FROM table
WHERE telephone_number REGEXP '[1]?[(]?[[:DIGIT:]]{3}[)]?[-]?[[:DIGIT:]]{3}[-]?[[:DIGIT:]]{4}'