选项卡式分隔文件到SQL查询(批量更新)

时间:2015-12-02 10:52:12

标签: mysql regex csv phpmyadmin

我有一个巨大的文件(超过2000行)标签分隔值存储为.txt文件。

我想使用该文件更新phpmyadmin中的数据库条目。

有没有正确的方法将这些行转换为sql语句(mysql)? 例如:

1   2   nameX   descriptionY    tagKeywords metatagTitleX   metadescriptionX    metaKeywordsX

会变成这样:

UPDATE table SET name=nameX, description=descriptionY, tag=tagKeywords, meta_title=metatagTitleX, meta_description=metadescriptionX, meta_keywords=metaKeywordsX WHERE id=1 AND languague_id=2;

我尝试使用此正则表达式:^.*?(?=\t)但这仅匹配找到的第一个出现的行。 以及如何记住'正则表达式发现能够替换的是什么?

或者,如果有另一种更简单的方式让我知道。

2 个答案:

答案 0 :(得分:1)

我通过创建一个表来解决它:

CREATE TABLE your_temp_table LIKE your_table;

然后使用phpmyadmin的导入选项卡导入数据(在新创建的表中),说明这是一个带有tab(\ t)分隔列的csv文件。

然后执行了更新查询:

UPDATE your_table
INNER JOIN your_temp_table on your_temp_table.id = your_table.id
SET your_table.quantity = your_temp_table.quantity;

我的价值观已经确定。

然后删除新创建的表。

我希望将来人们可以使用这种方法:)!

答案 1 :(得分:0)

如果此文本文件具有相同结构的所有行,那么您可以在每个选项卡和写入输出文件之前使用选项卡计数并插入查询字符串关键字。 或者尝试使用xls文件将行中包含正确字符串值的列放入。