MySQL 如何在将文本文件导入MySQL表时上传更改后的列(s)值,而不是写在文本文件中的值?

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添加到工资的值。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程