首页 > 文章列表 > 在将文本文件导入 MySQL 表时,如何上传列的更改值,而不是写入文本文件?

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

185 2023-09-06

假设如果我们想要上传更改后的值而不是文本文件中写入的值,那么我们需要将用户变量与 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是在salary的值上加上500之后将数据上传到表中的。