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 :

Concatenation avec NULL


Sujet :

SQL Procédural MySQL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Par défaut Concatenation avec NULL
    Bonjour,

    je voudrais concatener plusieur champs d'une même table, sachant que certain de ces champs ont pour valeur NULL.
    Par exemple, voici ma table:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    mysql> select * from temp;
    +-------+-------+-------+
    | chps1 | chps2 | chps3 |
    +-------+-------+-------+
    | tut   | tot   | tyt   |
    | tat   | tit   | tyt   |
    | tet   | NULL  | tyt   |
    | tat   |       | tyt   |
    +-------+-------+-------+
    4 rows in set (0.02 sec)
    Si j'utilise CONCAT(), je perds une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    mysql> select concat(chps1,chps2,chps3) from temp;
    +---------------------------+
    | concat(chps1,chps2,chps3) |
    +---------------------------+
    | tuttottyt                 |
    | tattittyt                 |
    | NULL                      |
    | tattyt                    |
    +---------------------------+
    4 rows in set (0.03 sec)
    Si j'utilise concat_ws(), c'est mieu, mais sur la ligne 3, je perds un champs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    mysql> select concat_ws(';',chps1,chps2,chps3) from temp;
    +----------------------------------+
    | concat_ws(';',chps1,chps2,chps3) |
    +----------------------------------+
    | tut;tot;tyt                      |
    | tat;tit;tyt                      |
    | tet;tyt                          |
    | tat;;tyt                         |
    +----------------------------------+
    4 rows in set (0.00 sec)
    Existe t'il un moyen de concatener des chaines contenant NULL avec MySQL??

    Stos

  2. #2
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Salut,

    En remplaçant les valeurs NULL par une chaîne vide ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select CONCAT(chps1, IFNULL(chps2, ''),chps3) from temp;
    Avec la même chose si champ1 et champ3 peuvent être NULL.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 74
    Par défaut
    Merci de ta réponse,
    je vais essayer comme ça.
    Sur ce coup là, MySQL est un peu verbeux .

  4. #4
    Membre émérite
    Avatar de Biglo
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    537
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 537
    Par défaut
    Je ne sais pas comment se comportent les autres SGBD. Mais puisque NULL représente une absence de valeurs, je trouve normal que la plupart des expressions / fonctions retournent NULL si NULL est l'un des paramètres ou opérandes.

    Dans ton cas, c'est en effet assez ennuyeux.

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

Discussions similaires

  1. concatenation avec des Null
    Par looping dans le forum SQL
    Réponses: 3
    Dernier message: 27/10/2011, 21h44
  2. Problème avec NULL
    Par Fiquet dans le forum Débuter
    Réponses: 5
    Dernier message: 26/10/2005, 13h40
  3. Problème Cast avec NULL values
    Par WwiloO dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/10/2005, 10h49
  4. [Syntaxe] Requêtes avec null
    Par Procto dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/07/2005, 16h10
  5. Clause IN avec null
    Par Pari dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/03/2004, 12h46

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