2011-05-07 43 views
1

我發現奇怪的符號出現在導入區域,奇怪的符號除外。在我的表格中查找並替換奇怪的符號

我想找到的所有引用

– 

我想它與

'

此更換是我嘗試過,失敗:

update exp_channel_data set * = replace(*,'–','''); 
+1

重複導入與適當的設置不是一個更好的主意? – 2011-05-07 16:02:15

+0

@Pekka - 借調,遠遠更好的選擇! – 2011-05-07 16:04:38

+0

你是什麼意思? – Andy 2011-05-07 16:05:18

回答

0
update table_name set field_name = replace(field_name,'–','''); 

正確的做法就像上面說的那樣。但是,如果您剛纔只導入了數據,並且尚未使用任何數據,那麼您最好只重新導入數據並更改導入設置,以確保正確的字符集擺脫異常情況。

如果你可以運行一個php腳本,像下面這樣的應該可以工作: 它不是原生的SQL,但它確實使過程自動化。它包含所有表格和所有字段。顯然,如果你只想要一個表等,你可以改變腳本(刪除外部循環)

// Assuming you have connected to database 
$dbname = "your_db" 
$sql = "SHOW TABLES FROM $dbname"; 
$tresult = mysql_query($sql); 
while ($trow = mysql_fetch_row($tresult)) { 
    $fresult = mysql_query("SHOW COLUMNS FROM {$trow[0]}"); 
    if (mysql_num_rows($fresult) > 0) { 
     while ($frow = mysql_fetch_assoc($fresult)) { 
     mysql_query("UPDATE {$trow[0]} set {$frow['Field']} = replace({$frow['Field']},'–',''');"); 
     } 
    } 
} 
+0

謝謝彼得,那就是pukka – Andy 2011-05-07 16:21:14

+0

不用擔心,我以前也遇到同樣的問題!有時候,一個小腳本可以節省一大堆導入符號的痛苦:) – 2011-05-07 16:22:40