Php MySQL-替换整个表中所有行和列的空间

Php MySQL-替换整个表中所有行和列的空间,php,mysql,sql,replace,Php,Mysql,Sql,Replace,好吧,也许这真的很简单,但我自己无法理解: 首先,我有一个csv文件。 我正在导入这个 加载数据本地填充 ... 进入一个包含20列和10000多行的mysql表 然后在一些行和列中有content=“”的字段,我想用“”替换它们。 我不知道“”将在哪列中,所以我想遍历整个表 所以我想到了这样的事情: 替换为产品(XXX)值(“”),其中XXX=“” ... 其中XXX是所有列名 有人能给我一些提示吗? 也许我应该在php中完成它? 谢谢 [编辑]或者在导入csv文件本身时,是否有方法进行编辑

好吧,也许这真的很简单,但我自己无法理解:

首先,我有一个csv文件。 我正在导入这个
加载数据本地填充
... 进入一个包含20列和10000多行的mysql表

然后在一些行和列中有content=“”的字段,我想用“”替换它们。 我不知道“”将在哪列中,所以我想遍历整个表

所以我想到了这样的事情:
替换为产品(XXX)值(“”),其中XXX=“”
... 其中XXX是所有列名

有人能给我一些提示吗? 也许我应该在php中完成它? 谢谢

[编辑]或者在导入csv文件本身时,是否有方法进行编辑


[编辑]我刚想做一个
更新表集column=”“WHERE column=”“
。但是我不希望为每一列编写20个查询。

正如Mihai提到的,您可以使用
信息\u模式
表来生成要执行的SQL

使用以下脚本生成SQL:

SELECT CONCAT('UPDATE ', TABLE_NAME ,' SET ',COLUMN_NAME ,'=\"\" WHERE ', COLUMN_NAME  ,'=\" \";') AS  SQLCOMMAND
FROM INFORMATION_SCHEMA.COLUMNS
WHERE data_type IN ('VARCHAR' ,'CHAR')
AND TABLE_SCHEMA='your_database_name'

这将为
VARCHAR
CHAR
的所有列打印更新语句,并将这些列值更新为“”

没有让信息模式起作用,所以我尝试了以下方法:

$rs = $db->query('SELECT * FROM mytablename LIMIT 0');

for ($i = 0; $i < $rs->columnCount(); $i++) {
    $col = $rs->getColumnMeta($i);
    $columns[] = $col['name'];
    $rs2 = $db->query('UPDATE mytablename SET '.$col['name'].'="" WHERE '.$col['name'].'=" "');
}
$rs=$db->query('SELECT*FROM mytablename LIMIT 0');
对于($i=0;$i<$rs->columnCount();$i++){
$col=$rs->getColumnMeta($i);
$columns[]=$col['name'];
$rs2=$db->query('updatemytablename SET'.$col['name'.''。=''其中'.$col['name'.''。='');
}

它运行得很好。

您确实
更新了产品集col=”“where col=”“
来更新列使用信息模式来生成您需要的语句。@czibro:同样的时间,同样的想法。谢谢。我做了一个
mysql\u查询($sql)
,它说,成功了。但没有改变任何事情。怎么了?我的$sql是:
$sql=“选择CONCAT('updatemytablename SET',COLUMN\u NAME',=\“\”WHERE',COLUMN\u NAME',=\“\”;”)作为来自信息\u SCHEMA.COLUMNS WHERE data\u type IN('VARCHAR','CHAR')和表\u SCHEMA='mydbname'的SQLCOMMAND