MySQL 如何在将文本文件导入MySQL表时上传更改后的列(s)值,而不是写在文本文件中的值?
假设我们想要上传更改后的值而不是文本文件中的值,那么我们需要使用用户变量以及SET命令。可以通过以下示例理解它 –
阅读更多:MySQL 教程
例子
假设我们在’A.txt’中有以下数据 –
105,Chum,USA,11000
106,Danny,AUS,12000
但是我们想要在导入时添加500后上传其工资的价值,而不更改文本文件中的工资值,则可以通过以下查询使用用户变量和SET选项完成 –
mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee11_tbl FIELDS TERMINATED BY ',' (id,name,country,@salary) SET salary = @salary + 500;
Query OK, 2 rows affected (0.21 sec)
Records: 2 Deleted: 0 Skipped: 0 Warnings: 0
mysql> Select * from employee11_tbl;
+------+----------------+----------+--------+
| Id | Name | Country | Salary |
+------+----------------+----------+--------+
| 105 | Chum | USA | 11500 |
| 106 | Danny | AUS | 12500 |
+------+----------------+----------+--------+
2 rows in set (0.00 sec)
从上面的结果集中可以清楚地看到,MySQL在将数据上传到表中后,将500添加到工资的值。
极客教程