Ste*_*eve 16 php mysql sql excel
我有一个excel电子表格:
id name region zone
1 pokin Polon Riny
2 lucy yerni kinta
...
Run Code Online (Sandbox Code Playgroud)
我在mysql数据库中有表,region_id而zone_id不是在区域和区域中作为id的外键.
用户表:
id name region_id zone_id
1 retre 1 1
...
Run Code Online (Sandbox Code Playgroud)
区域表:
id region_name
1 Polon
...
Run Code Online (Sandbox Code Playgroud)
和区域表
id zone_name
1 kinta
...
Run Code Online (Sandbox Code Playgroud)
我需要将excel电子表格导入到users表中.
Ric*_*mes 11
X比如表.像这样的东西:
INSERT INTO users
(id, name, region_id, zone_id)
SELECT X.id, X.name, r.id, z.id
FROM X
LEFT JOIN region AS r ON r.region_name = X.region
LEFT JOIN zone AS z ON z.zone_name = X.zone;
Run Code Online (Sandbox Code Playgroud)
如果id是AUTO_INCREMENT,那么你可能想要略有不同.(留id出的INSERT和SELECT.)
我用过LEFT以防丢失的区域或划分区域.在这种情况下,你会得到NULLs或默认值region_id或zone_id,从而表明有什么需要固定.
我建议在您的 .xls 表中,将区域和区域名称替换为数据库中这些字段的实际 ID。然后,您可以将 xls 文件导出到 csv 文件,然后使用mysqlimport轻松将其导入到数据库中
mysqlimport --ignore-lines=1 \
--fields-terminated-by=, \
--local -u root \
-p DatabaseName \
YourExportedFile.csv
Run Code Online (Sandbox Code Playgroud)
这里需要考虑一些事情:
您可以使用LOAD DATA INFILE通过 SQL 语句导入 CSV 文件
LOAD DATA INFILE "/home/user/YourExportedFile.csv"
INTO TABLE YOUR_TABLE
COLUMNS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 LINES;
Run Code Online (Sandbox Code Playgroud)
此外,如果您使用任何图形 MySQL 客户端(mysql workbench、heideSql、mysqlpro 等),您可以使用导入功能。
| 归档时间: |
|
| 查看次数: |
1548 次 |
| 最近记录: |