gpt4 book ai didi

php - 使用 Set 使用散列和日期加载数据本地文件

转载 作者:行者123 更新时间:2023-11-29 02:48:50 25 4
gpt4 key购买 nike

我对此束手无策。我已经研究到死了,似乎无法解决。我有以下 PHP 语句:

    $sqlstatement="LOAD DATA LOCAL INFILE '$temp' INTO TABLE contacts FIELDS 
TERMINATED BY ','
LINES TERMINATED BY '\r'
IGNORE 1 LINES
(@ignore, @ID, @Name, @Email, @Type, @Hash, @Time)
SET Date_Update=date('Y-m-d')
";

我的 CSV 文件包含以下标题行:ID、用户名、用户电子邮件、类型。

ID      User Name   User Email  Type
12345 Jackson, F fj@me.com Level 1
67890 Stewart, J js@me.com Level 1
43210 Fuller, T tf@me.com Level 2
62295 Lewis, M ml@me.com Level 2

CSV 文件还有一些我不需要导入的额外字段。希望我可以选择要导入的字段。不确定技术。

我的 MYSQL 表有以下字段:Tag(自增)、ID、Name、Email、Type、Hash、Date_Update、Time_Update。

我似乎无法弄清楚如何在此命令中使用 SET 功能。我将@ignore 设置为跳过标签(自动递增字段)。

  • 如何将 CSV“用户名”字段放入 MYSQL“名称”字段?
  • 如何为 MYQL“Date_Update”字段生成今天的日期?我试过SETDate_Update=date('Y-m-d') 但它显示为空白。
  • 如何从 CSV“ID”字段生成哈希?我试过 Hash=Hash('sha384',$pre.@ID.$suf)

我很迷茫。任何帮助将不胜感激。

最佳答案

这基于 Tab '\t' 作为列分隔符的假设。

随心所欲地修改哈希。我现在只是将 sha2() 作为占位符放入。

我花了一段时间才弄明白这一点。我不得不进入你的问题的“编辑”以假设有标签。终于在 Here 上找到了同行的答案按用户peixe .

您从未提供架构,所以我选择了这个架构。如果需要,添加您的时间列。但是我用 now() 将日期和时间折叠到一列中,变成了 datetime

架构:

drop table if exists pumpkin001;
create table pumpkin001
( Tag int auto_increment primary key,
ID varchar(10) not null,
Name varchar(100) not null,
Email varchar(100) not null,
Type varchar(100) not null,
Hash varchar(1000) not null,
Date_Update datetime not null
);

加载(Windows):

LOAD DATA LOCAL INFILE 'c:\\nate\\file007.txt'
into table pumpkin001
COLUMNS TERMINATED BY '\t'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(@ID, @Name, @Email, @Type)
SET ID=@ID, Name=@Name, Email=@Email, Type=@Type,
Hash=sha2(@ID,384), Date_Update=now();

加载(Linux):

LOAD DATA LOCAL INFILE 'file007.txt'
into table pumpkin001
COLUMNS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(@ID, @Name, @Email, @Type)
SET ID=@ID, Name=@Name, Email=@Email, Type=@Type,
Hash=sha2(@ID,384), Date_Update=now();

结果:

select Tag,ID,Name,Email,Type,left(Hash,50) as L50_Hash,Date_Update from pumpkin001;
+-----+-------+------------+-----------+---------+----------------------------------------------------+---------------------+
| Tag | ID | Name | Email | Type | L50_Hash | Date_Update |
+-----+-------+------------+-----------+---------+----------------------------------------------------+---------------------+
| 1 | 12345 | Jackson, F | fj@me.com | Level 1 | 0fa76955abfa9dafd83facca8343a92aa09497f98101086611 | 2016-07-14 18:21:40 |
| 2 | 67890 | Stewart, J | js@me.com | Level 1 | 6988c291a83b05760b93263fc78e8feeca8ca4641b007c6978 | 2016-07-14 18:21:40 |
| 3 | 43210 | Fuller, T | tf@me.com | Level 2 | 6d07aa9758595e1dfe5dca93acc46dea01fef0856fe7dadf04 | 2016-07-14 18:21:40 |
| 4 | 62295 | Lewis, M | ml@me.com | Level 2 | f3d4154869ef03ff09ea778b5066bd909c3ce5baf894e0593b | 2016-07-14 18:21:40 |
+-----+-------+------------+-----------+---------+----------------------------------------------------+---------------------+

关于php - 使用 Set 使用散列和日期加载数据本地文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38381971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com