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

标签 php mysql sql replace

好吧,也许这真的很简单,但我自己无法弄清楚:

首先我有一个 csv 文件。 我正在导入这个 加载数据本地INFILE ...到一个有 20 列和超过 10000 行的 mysql 表中。

然后,在某些行和列中,有一些内容为“”的字段,我想将其替换为“”。 我不知道“”将在哪些列中,所以我想迭代整个表。

所以我想到了这样的事情: 替换为产品 (XXX) VALUE ("") WHERE XXX = "" ...其中 XXX 都是列名称。

有人可以给我提示吗? 也许我应该在 php 中完成它? 谢谢。

[编辑]或者也许有一种方法可以在导入 csv 文件本身时做到这一点?

[编辑]我只是想做一个UPDATE table SET column = ""WHERE column=""。但我希望不需要为每一列编写 20 个查询。

最佳答案

正如 Mihai 提到的,您可以使用 INFORMATION_SCHEMA 表来生成要执行的 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'

这将为所有 VARCHARCHAR 列打印出更新语句,并将这些列值更新为“”。

关于php - MySQL-替换整个表中所有行和列的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25858625/

相关文章:

php file_get_contents 执行两次

php - 记住 MYSQL 查询结果以便在 PHP 页面中使用

php - 如何将输入值从一个php页面传递到另一个php页面

mysql - CHAR 字段只能有某些值 - CONSTRAINT

php - cakephp 保存数据到数据库

PHP检测输入的时间戳范围是否大于一天

傻瓜版 PHP PDO

sql - 查询插入和选择说明

c# - 将表值从一个表插入到另一个表

php - 用php中的字符串替换自定义标签的值