在我的表中查找并替换奇怪的符号

时间:2011-05-07 15:58:36

标签: mysql replace

我发现导入的奇怪符号与奇怪的符号完全不同。

我试图找到对

的所有引用
–

我想用

替换它

'

这是我试过的,失败了:

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

1 个答案:

答案 0 :(得分: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']},'–',''');");
        }
    }
}