2010-03-03 20 views

回答

1

4K聽起來並不像很多記錄都解決這些問題。

我敢打賭,不同的格式屬於有限數量的組合。

我想知道是否有可能通過一些審慎的SQL查詢。如果你的RDBMS有正則表達式和字符串替換函數,你可以用幾條UPDATE指令來管理它。如果沒有,任何具有查詢數據庫,替換字符串和更新的語言都可以完成這項工作。

+0

我同意,UPDATE語句可以做到這一點。你還有其他的功能,比如SUBSTRING,LEFT,RIGHT,TRIM等。你甚至可以獲得角色實例的位置。可能最好是複製表格並測試它。儘管如此,正如你所說,4K真的很小。 – Kezzer 2010-03-03 11:12:40

+0

謝謝,但你的意思是4000記錄是小? – 2010-03-03 11:15:32

+0

是的,非常小。 – duffymo 2010-03-03 12:09:17

1

我同意4k記錄是沒有什麼可擔心的。我建議查詢電話號碼和表格的主要ID,從電話號碼中剝離所有字符,然後將其操作爲您想要的格式。或者,您可以將其保留爲僅數字,並在每次顯示時使用前端修改數字。以下是您可以嘗試使用的一個未經測試的腳本。不處理擴展名,預計有10個數字。

// mysql_connect stuff 
$q = mysql_query("Select phone_id, phone_number From phones"); 
while($r = mysql_fetch_assoc($q)) { 
    $num = ereg_replace("[^0-9]", "", $r['phone_number']); 
    if(strlen($num) == 10) { 
     $num = substr($num, 0, 3) . '-' . substr($num, 3, 3) . '-' . $substr($num,-4); 
    } 
    $update = mysql_query("Update phones Set phone_number = '" . $num . "' Where phone_id = " . $r['phone_id']); 
    // updated? 
} 
+0

謝謝Aaron,我想我會多次瀏覽這個數據庫 – 2010-03-03 12:07:24