Maison > base de données > tutoriel mysql > Comment charger des valeurs NULL, pas des zéros, d'un CSV vers MySQL à l'aide de LOAD DATA INFILE ?

Comment charger des valeurs NULL, pas des zéros, d'un CSV vers MySQL à l'aide de LOAD DATA INFILE ?

Mary-Kate Olsen
Libérer: 2024-12-22 07:28:09
original
750 Les gens l'ont consulté

How to Load NULL Values, Not Zeros, from a CSV into MySQL using LOAD DATA INFILE?

MySQL : Chargement de valeurs NULL à partir de données CSV

Problème :

Lors du chargement de données à partir d'un fichier CSV avec des champs vides dans une table MySQL à l'aide de la commande LOAD DATA INFILE, MySQL attribue 0 aux champs vides au lieu de NULL, même lorsque la colonne est définie avec une valeur par défaut NULL.

Solution :

Pour charger correctement les valeurs NULL pour les champs vides, lisez le champ problématique dans une variable locale, puis définissez conditionnellement la valeur réelle du champ à NULL si la variable est vide :

LOAD DATA INFILE '/tmp/testdata.txt'
INTO TABLE moo
FIELDS TERMINATED BY ","
LINES TERMINATED BY "\n"
(one, two, three, @vfour, five)
SET four = NULLIF(@vfour,'')
;
Copier après la connexion

Explication :

  • L'instruction LOAD DATA INFILE lit les données du fichier CSV dans la table moo.
  • La clause FIELDS définit les champs du fichier CSV et leurs noms de colonnes correspondants dans le tableau.
  • Le le quatrième champ (@vfour) est lu dans une variable locale au lieu de directement dans les quatre colonnes.
  • L'instruction SET vérifie si la variable @vfour est vide ('') à l'aide de la fonction NULLIF.
  • Si @vfour est vide, les quatre colonnes sont définies sur NULL ; sinon, il conserve sa valeur d'origine.

Remarque supplémentaire :

Si tous les champs peuvent potentiellement être vides, lisez-les tous dans des variables locales et utilisez plusieurs Instructions SET pour attribuer conditionnellement des valeurs NULL.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal