Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào chúng ta có thể tải lên giá trị đã thay đổi, thay vì được viết trong tệp văn bản, của (các) cột trong khi nhập tệp văn bản đó vào bảng MySQL?


Giả sử nếu chúng ta muốn tải lên giá trị đã thay đổi chứ không phải giá trị được ghi trong tệp văn bản thì chúng ta cần sử dụng các biến người dùng cùng với lệnh SET. Nó có thể được hiểu với sự trợ giúp của ví dụ sau -

Ví dụ

Giả sử chúng ta đang có dữ liệu sau trong ‘A.txt’ -

105,Chum,USA,11000
106,Danny,AUS,12000

Nhưng chúng tôi muốn tải lên giá trị tiền lương sau khi thêm 500 vào thời điểm nhập mà không làm thay đổi giá trị tiền lương trong tệp văn bản thì việc này có thể được thực hiện với sự trợ giúp của truy vấn sau bằng cách sử dụng biến người dùng cùng với tùy chọn 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)

Từ tập kết quả trên, rõ ràng là MySQL đã tải dữ liệu vào bảng sau khi thêm 500 vào giá trị của lương.