制表符分隔文件到 SQL 查询(批量更新)
Tabbed Delimited file to SQL queries (bulk update)
我有一个巨大的文件(超过 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)
但这只匹配一行的第一次出现。
'remember' 正则表达式如何找到能够进行替换的内容?
或者,如果有其他更简单的方法,请告诉我。
如果此文本文件的所有行都具有相同的结构,那么也许您可以只使用制表符计数并在每个制表符之前插入查询字符串关键字并写入输出文件。
或尝试使用 xls 文件将具有正确字符串值的列放入行中。
我通过创建 table:
解决了这个问题
CREATE TABLE your_temp_table LIKE your_table;
然后使用 phpmyadmin 的导入选项卡导入数据(在新创建的 table 中)说它是一个用制表符 (\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;
我的所有值都是在哪里设置的。
然后删除新建的table。
希望以后的人都能用上这个方法:)!
我有一个巨大的文件(超过 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)
但这只匹配一行的第一次出现。
'remember' 正则表达式如何找到能够进行替换的内容?
或者,如果有其他更简单的方法,请告诉我。
如果此文本文件的所有行都具有相同的结构,那么也许您可以只使用制表符计数并在每个制表符之前插入查询字符串关键字并写入输出文件。 或尝试使用 xls 文件将具有正确字符串值的列放入行中。
我通过创建 table:
解决了这个问题CREATE TABLE your_temp_table LIKE your_table;
然后使用 phpmyadmin 的导入选项卡导入数据(在新创建的 table 中)说它是一个用制表符 (\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;
我的所有值都是在哪里设置的。
然后删除新建的table。
希望以后的人都能用上这个方法:)!