2013-09-23 7 views
3

J'ai une base de données mySQL volumineuse et je souhaite supprimer tous les enregistrements vides, et non null dans une certaine colonne. Quelle est la meilleure façon d'écrire une requête SQL pour cela?Requête mySQL Supprimer les enregistrements Null dans la colonne

Actuellement j'ai essayé:

DELETE FROM Businesses WHERE WEBADDRESS IS NULL 

Mais il n'a pas supprimé quoi que ce soit. Il y a 44 000 enregistrements et près de 80% d'entre eux sont null dans cette colonne.

+0

Correction de votre question en fonction de votre commentaire. C'est une meilleure question maintenant, fournissant quelques informations sur ce que vous avez fait et plus de contexte pour les personnes qui essaient d'aider. – Matthew

Répondre

8
DELETE FROM myTable WHERE myColumn IS NULL 

Lien vers la page MySQL pour la syntaxe SUPPRIMER: http://dev.mysql.com/doc/refman/5.7/en/delete.html

Si la colonne n'est pas NULL mais juste vide vous devez faire quelque chose comme:

DELETE FROM myTable WHERE myColumn = '' 

D'après les informations que vous aussi fournies dans les commentaires, les valeurs sont probablement chargées comme vides ('') et non NULL: http://dev.mysql.com/doc/refman/5.7/en/problems-with-null.html

La deuxième requête devrait fonctionner.

+0

Je l'ai essayé, mais il n'a rien supprimé. Il y a 44 000 enregistrements et près de 80% d'entre eux sont null dans cette colonne. DELETE FROM Entreprises où WEBADDRESS EST NULL –

+0

Avez-vous une dépendance de clé étrangère sur ces enregistrements? Y a-t-il un message d'erreur? La colonne est-elle réellement nulle ou simplement vide? – Matthew

+0

J'ai eu un fichier CSV qui a 19 colonnes, donc j'ai créé une table et nommé chaque colonne comme le CSV les avait et les a tous VARCHAR 255, puis importé le CSV. L'importation s'est déroulée sans erreur et je n'ai apporté aucune autre modification à la structure de la table. –

1
delete from your_table 
where certain_column is null 
1
DELETE from `<tablename>` 
WHERE `<columnname>` is null 
-1

Essayez: SUPPRIMER des entreprises OÙ ISNULL (webaddress, '') = '';

1
delete from table_name where column='' 
0

delete de table_name où nom_colonne est null; cette requête va certainement fonctionner pour vous.

Questions connexes