Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Mysql có thể nhập tệp csv hoặc txt khác vào một cột không?

Có, bạn có thể thực hiện một vài bước sau:

Đầu tiên Tạo một bảng dàn tạm thời (hãy gọi nó là import ) với một cột sẽ giữ các dòng dưới dạng các hàng của tệp dữ liệu nguồn

CREATE TABLE `import` (
  `line` varchar(512) DEFAULT NULL
);

và tải dữ liệu từ tệp vào bảng

LOAD DATA INFILE '/path/to/your/file.txt'
INTO TABLE import
FIELDS TERMINATED BY '\n'
LINES  TERMINATED BY '\n'

Thứ hai Giả sử rằng bạn có một bảng đích (hãy gọi nó là words ) trông giống như thế này

CREATE TABLE `words` (
  `word` varchar(64) DEFAULT NULL
);

chúng ta có thể tách từng dòng thành các từ và chèn chúng vào words bảng với một truy vấn

INSERT INTO words (word)
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(line, ' ', n.n), ' ', -1) word
  FROM import CROSS JOIN 
(
   SELECT a.N + b.N * 10 + 1 n
     FROM 
    (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
   ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
    ORDER BY n
) n
 WHERE n.n <= 1 + (LENGTH(line) - LENGTH(REPLACE(line, ' ', '')))
 ORDER BY n.n

LƯU Ý:

  • giả định là các từ của bạn được phân tách chính xác bằng một dấu cách
  • truy vấn này sẽ chia ra tối đa 100 từ. Nếu cần nhiều hơn hoặc ít hơn, bạn có thể điều chỉnh giới hạn bằng cách chỉnh sửa truy vấn con bên trong hoặc nếu nhập thường xuyên thay vì cân nhắc sử dụng bảng (số) kiểm đếm liên tục để thay thế.

Thứ ba Thả hoặc cắt bớt (nếu bạn sẽ sử dụng lại nó để nhập nhiều tệp hơn) bảng dàn

DROP TABLE import;

Đây là SQLFiddle bản trình diễn hiển thị bước hai.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có thể chắc chắn về Id Chèn Cuối cùng của Mysql không?

  2. Đặt trước câu lệnh GROUP BY

  3. Cách đổi tên cơ sở dữ liệu trong MySQL

  4. Làm cách nào để đặt số lượng quy trình hoặc luồng MySQL tối đa?

  5. Công cụ biểu đồ của Google với PHP và MySQl