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 du Club
    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
    Points : 69
    Points
    69
    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 éprouvé
    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
    Points : 984
    Points
    984
    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 du Club
    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
    Points : 69
    Points
    69
    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 éprouvé
    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
    Points : 984
    Points
    984
    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