Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/10/2007, 11h55   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 84
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 84
Points : 13
Points : 13
Par défaut Lister tous les enregistrés vides (not null)

Bonjour,

Je dois différencier les clients ayant remplis leur prestation et ceux qui ne l'ont pas fait, pour cela je vérifie simplement si le champ n'est pas vide, seul problème, si je fais IS NOT NULL ça me retourne rien car je crois que fallait utiliser NULL a la construction de l'attribut.
Ma solution temporaire est de faire WHERE PRESTATION != ''

Je suppose que c'est assez crade et j'en appelle a vous pour me souffler une fonction, astuce pour réaliser la même chose de manière plus conventionnelle et surtout plus optimisé.

Merci.
Kijer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 12h59   #2
Membre habitué
 
Inscription : juin 2007
Messages : 114
Détails du profil
Informations personnelles :
Âge : 25

Informations forums :
Inscription : juin 2007
Messages : 114
Points : 114
Points : 114
Envoyer un message via MSN à Plorf
si tu fais IS NULL cela signifie que tu récupères seulement les vides...

le where ...!=NULL est propre, le moteur l'optimiseras bien
Plorf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 13h49   #3
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par Plorf Voir le message
le where ...!=NULL est propre, le moteur l'optimiseras bien
Non, c'est exactement la même chose que != ''. La syntaxe à utiliser est IS NOT NULL.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 13h56   #4
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 84
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 84
Points : 13
Points : 13
Pardon, je viens d'editer, une erreur d'inatention, biensur j'avais mis IS NOT NULL, mais comme je l'ai précisé, je suis en champ "NOT NULL" donc meme si un champ est vide (pas d'espace,ni de NULL) il me sort rien.

il n'y a pas une sorte de EMPTY comme un php ?
Kijer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 20h39   #5
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
si c'est un type texte, c'est '', exactement comme tu as fait. Quant à l'équivalent du empty, c'est évidemment NULL.

Si tu veux faire propre, il passer ta colonne en nullable, puis modifier les '' en NULL :
Code :
1
2
 
UPDATE matable SET macolonne = NULL WHERE macolonne = '' ;
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 23h15   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 84
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 84
Points : 13
Points : 13
Je vais faire ça !

Dernière question, donc la valeur par defaut sera "NULL" ? pareil si je fais un INSERT ou UPDATE avec ='' ?
Kijer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 14h16   #7
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par Kijer Voir le message
Je vais faire ça !

Dernière question, donc la valeur par defaut sera "NULL" ?
sauf si tu mets une autre valeur par défaut

Citation:
Envoyé par Kijer Voir le message
pareil si je fais un INSERT ou UPDATE avec ='' ?
non, '' c'est '', et NULL c'est NULL. Tu auras un NULL si tu fais ton INSERT sans citer la cholonne en question, ou bien si tu fais un INSERT ou un UPDATE en précisant explicitement NULL (ou DEFAULT).
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 14h34   #8
Candidat au titre de Membre du Club
 
Inscription : décembre 2005
Messages : 84
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 84
Points : 13
Points : 13
J'ai compris, merci.

Résolu
Kijer est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h49.


 
 
 
 
Partenaires

Hébergement Web