IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

Lister tous les enregistrés vides (not null)


Sujet :

SQL Procédural MySQL

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 96
    Points : 45
    Points
    45
    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.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Points : 149
    Points
    149
    Par défaut
    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

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    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.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 96
    Points : 45
    Points
    45
    Par défaut
    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 ?

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE matable SET macolonne = NULL WHERE macolonne = '' ;

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 96
    Points : 45
    Points
    45
    Par défaut
    Je vais faire ça !

    Dernière question, donc la valeur par defaut sera "NULL" ? pareil si je fais un INSERT ou UPDATE avec ='' ?

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    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).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 96
    Points : 45
    Points
    45
    Par défaut
    J'ai compris, merci.

    Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/09/2013, 13h56
  2. Réponses: 8
    Dernier message: 05/06/2011, 09h38
  3. suppression de tous les enregistrements ayant deux champs vides
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/04/2009, 17h30
  4. Réponses: 4
    Dernier message: 23/08/2006, 15h36
  5. Réponses: 3
    Dernier message: 28/10/2005, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo