迭代mysql字段并更新字段

时间:2009-11-24 11:55:28

标签: mysql

我在表格中的数据包含一些空格,所以我使用此命令修剪它

update results set Field1 = trim(Field1);

我正在为所有字段手动执行此操作。

任何人都可以为我提供一个通用的SQL来自动修剪表格中的文件总数吗?

谢谢,

2 个答案:

答案 0 :(得分:1)

这是不可能的。你必须更新每一列。但是你可以节省一些时间:

update results
   set field1 = trim(field1)
     , field2 = trim(field2)

或者,您可以查询INFORMATION_SCHEMA.COLUMNS表以查找所有VARCHAR列,并使用它来构建其他语言(如PHP或Perl)的查询。

答案 1 :(得分:1)

你不能在一个声明中自动完成,但你能做的是:

SHOW COLUMNS FROM myTable WHERE `Type` LIKE '%char%';

这将为您提供所有CHAR和VARCHAR字段的列表。循环遍历这些结果,构建一个SQL语句:

$temp = array();
while ($row = mysql_fetch_assoc($result)) {
    $temp[] = sprintf('`%1$s` = TRIM(`%1$s`)', $row['Field']);
}
$sql = "UPDATE myTable SET " . implode(", ", $temp);
mysql_query($sql);