2011-05-07 27 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