Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Czy mysql może zaimportować plik csv lub inny plik txt do jednej kolumny?

Tak, możesz to zrobić w kilku krokach:

Pierwszy Utwórz tymczasową tabelę pomostową (nazwijmy ją import ) z jedną kolumną, która będzie zawierać wiersze jako wiersze źródłowego pliku danych

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

i załaduj dane z pliku do tabeli

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

Drugi Zakładając, że masz tabelę docelową (nazwijmy ją words ) wygląda mniej więcej tak

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

możemy podzielić każdą linię na słowa i wstawić je w words tabela z zapytaniem

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

UWAGA:

  • założenie jest takie, że słowa są oddzielone dokładnie jedną spacją
  • to zapytanie podzieli do 100 słów. Jeśli potrzebujesz więcej lub mniej, możesz dostosować limit, edytując wewnętrzne podzapytanie lub jeśli regularnie importujesz, niż rozważ użycie utrwalonej tabeli tally (liczby).

Trzeci Upuść lub przytnij (jeśli użyjesz go ponownie, aby zaimportować więcej plików) tabelę pomostową

DROP TABLE import;

Oto SQLFiddle demo pokazujące krok drugi.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. różnica między where_in i find_in_set

  2. Jak wyszukać wartość oddzieloną przecinkami

  3. Implementacja algorytmu ray-castingu w MySQL?

  4. konfiguracja serwera mysql instalacja nie powiodła się LUB nie można uruchomić usługi

  5. Jak połączyć się z wieloma bazami danych MySQL na jednej stronie internetowej?