导入文本文件到MySQL表格时,如何上传列的更改值,而不是文本文件中写入的值?


假设我们想要上传更改后的值,而不是文本文件中写入的值,则需要使用用户变量以及SET命令。可以通过以下示例来理解:

示例

假设‘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后,将数据上传到表中。

更新于:2020年2月6日

86 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.