不是一個數據庫人,而是:我混淆了我繼承的mySql數據庫中的數據。清理mySql中的電話號碼字段
一些電話號碼的格式(512) 555-1212
(稱之爲髒) 其他5125551212
(稱爲清潔)
我需要一個sqlstamet,說
UPDATE table_name
SET Phone="clean'(Some sort of cleaning code - regex?)
WHERE Phone='Dirty'
不是一個數據庫人,而是:我混淆了我繼承的mySql數據庫中的數據。清理mySql中的電話號碼字段
一些電話號碼的格式(512) 555-1212
(稱之爲髒) 其他5125551212
(稱爲清潔)
我需要一個sqlstamet,說
UPDATE table_name
SET Phone="clean'(Some sort of cleaning code - regex?)
WHERE Phone='Dirty'
不幸的是有沒有正則表達式在MySQL替換/更新。如果它只是括號和破折號和空格,那麼一些嵌套的REPLACE
調用將會訣竅:
UPDATE table_name
SET Phone = REPLACE(REPLACE(REPLACE(REPLACE(Phone, '-', ''), ')', ''), '(', ''), ' ', '')
據我所知,你不能運行一個正則表達式在更新過程中替換數據。只在SELECT語句中。
最好的辦法是使用您熟悉的腳本語言並閱讀表格並以此方式進行更改。基本上通過檢索所有條目。然後使用字符串替換來匹配簡單的正則表達式,如[^\d]*
並刪除這些字符。然後用新值更新表格。
而且,看到這樣的回答: How to do a regular expression replace in MySQL?