Sauter des colonnes dans les importations CSV vers MySQL
Lors de l'importation d'un fichier CSV dans une table MySQL à l'aide de la commande LOAD DATA INFILE, il est courant de rencontrez un scénario dans lequel le nombre de colonnes dans le fichier CSV diffère des colonnes de la table cible. Dans de tels cas, sauter des colonnes spécifiques devient nécessaire.
Problème :
Supposons que vous ayez un fichier CSV avec 11 colonnes et une table MySQL avec seulement 9 colonnes. Vous souhaitez mapper les colonnes 1 à 8 du fichier CSV directement aux colonnes 1 à 8 du tableau, mais ignorez les deux colonnes suivantes et mappez la colonne 11 du fichier CSV à la colonne 9 du tableau.
Solution :
Pour ignorer des colonnes pendant le processus d'importation, vous pouvez utiliser la fonctionnalité de MySQL consistant à attribuer des valeurs aux variables utilisateur sans les insérer dans la table. colonnes. Ceci est réalisé en attribuant les colonnes ignorées aux variables utilisateur, en ignorant effectivement leurs valeurs.
Voici la commande SQL modifiée qui réalise le mappage souhaité :
LOAD DATA LOCAL INFILE 'filename.csv' INTO TABLE my_table FIELDS TERMINATED BY ',' ENCLOSED BY '' LINES TERMINATED BY '\n' (column1, @dummy1, column2, @dummy2, column3, column4, column5, column6, column7, column8, @dummy3, column9);
Dans cette commande modifiée, deux utilisateurs Les variables (@dummy1 et @dummy2) sont utilisées pour capturer respectivement les valeurs des neuvième et dixième colonnes du fichier CSV, mais ces valeurs ne sont affectées à aucune colonne du tableau. En conséquence, ils sont effectivement ignorés, permettant à la colonne 11 du fichier CSV d'être correctement mappée à la colonne 9 du tableau.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!