我需要一個更好的方法來替換字符串中的非數字字符。如何從字符串中替換非numiric字符MySQL
我的電話號碼,像這樣 (888)488-6655 888-555-8888 等等等等
所以我可以用一個簡單的替換函數返回一個字符串,乾淨,但我期待更好的方法可能是使用表達式函數來替換任何非數字值。像空間斜槓,反斜槓,報價.....任何沒有數值
這是我當前的查詢
SELECT
a.account_id,
REPLACE(REPLACE(REPLACE(REPLACE(t.phone_number, '-', ''), ' ', ''), ')', ''),'(','') AS contact_number,
IFNULL(t.ext, '') AS extention,
CASE WHEN EXISTS (SELECT number_id FROM contact_numbers WHERE main_number = 1 AND account_id = a.account_id) THEN 0 ELSE 1 END AS main_number,
'2' AS created_by
FROM cvsnumbers t
INNER JOIN accounts a ON a.company_code = t.company_code
WHERE REPLACE(REPLACE(REPLACE(REPLACE(t.phone_number, '-', ''), ' ', ''), ')', ''),'(','') NOT IN(SELECT contact_number FROM contact_numbers WHERE account_id = a.account_id)
AND LENGTH(REPLACE(REPLACE(REPLACE(REPLACE(t.phone_number, '-', ''), ' ', ''), ')', ''),'(','')) = 10
我怎樣才能改變我的查詢使用一個正則表達式來代替非數字值。
感謝
由於所有其他包含'mysql'&'regex'的問題都表明,這不是本機'MySQL'。你[可以使用這個](https://launchpad.net/mysql-udf-regexp)。 – Wrikken