使用php从csv向空行插入相同的值

使用php从csv向空行插入相同的值,php,mysql,csv,upload,Php,Mysql,Csv,Upload,大家好,, 我想要一些关于使用php在mysql中上传这些数据的帮助。我不知道这个问题是否已经被问过了,但我真的找不到答案,所以任何帮助都将不胜感激。谢谢 正如您在“来自CSV的数据”区域中看到的,这就是我将如何上传数据的方式,但是在描述中有空值,我需要使用php填充这些值。如果文件相等,说明也应相等 这不需要PHP。只需将CSV数据(使用您使用的任何工具或语言)导入到一个临时表中,然后也使用SQL填补空白,最后将数据推送到主表中。这将使您从编码中解脱出来,并使过程更加高效和快速 ...Code

大家好,, 我想要一些关于使用php在mysql中上传这些数据的帮助。我不知道这个问题是否已经被问过了,但我真的找不到答案,所以任何帮助都将不胜感激。谢谢

正如您在“来自CSV的数据”区域中看到的,这就是我将如何上传数据的方式,但是在描述中有空值,我需要使用php填充这些值。如果文件相等,说明也应相等


这不需要PHP。只需将CSV数据(使用您使用的任何工具或语言)导入到一个临时表中,然后也使用SQL填补空白,最后将数据推送到主表中。这将使您从编码中解脱出来,并使过程更加高效和快速

...Code to import CSV data to temporary table

UPDATE tmp_data
SET description = document
WHERE description = '' OR description IS NULL;

INSERT INTO main_data (account, document, description) 
SELECT account, document, description FROM tmp_data;
进口:

加载数据填充
进入表格tmp_表格
{导入选项}
(账户名称、文件编号、说明);
更新:

更新tmp_表t1
使用(AccountName,DocumentNo)连接tmp_表t2
设置t1.Description=t2.Description
其中t2.说明>'';

对于每个
(AccountName,DocumentNo)
对值,在
说明
中只能有一个不同的非空值(即允许有多行非空值,但所有这些值必须相同)。如果不是,则输出是不可预测的,而且,在某些行中,一个非空值可能被另一个非空值替换


当然,这一切都可以通过一个(正式的)查询来完成

您可以使用
ENGINE=CSV
选项将CSV文件附加为表格,然后使用

插入tmp_表(账户名称、文档编号、说明)
选择AccountName、DocumentNo、t2。说明
从csv_表t1
使用(AccountName,DocumentNo)连接csv_表t2
其中t2.说明>'';
但是您的CSV必须包含在导入过程中必须忽略的前缀行


对于每个
(AccountName,DocumentNo)
对值,
说明中必须只有一个非空值。如果不是,则
tmp\u表中的行数将相乘。但您可以编辑查询并用相应的子查询替换
csv\u表t2
,该子查询为每个
(AccountName,DocumentNo)
对值区分
Description
值。

使用加载数据填充将csv加载到表中,然后使用更新填充空值。再见,但我需要的是它在上传之前或之后自动填充这些空值。我需要的是它在上传之前或之后自动填充这些空值。。这必须通过单独的查询来执行。再见谢谢您的帮助,我已经尝试了您的代码,但描述部分的结果是文档编号为“123”,我需要的是它显示“描述1”,例如,如果文档编号行等于“123”,则空描述应为=“描述1”.SET description=CONCAT('说明',文档)谢谢您,先生!工作得很有魅力。虽然它在处理数千个数据时有点慢,但它确实回答了我的问题。谢谢您,先生。@DemBautista在使用它时有点慢,在导入数据后,根据索引创建数千个数据,这将改进更新。在第二个选项中-无可能有帮助。我应该为sir编制索引吗?@DemBautista
在tmp_表(AccountName,DocumentNo)上创建索引idx