Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes 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 28/03/2011, 12h48   #1
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Par défaut IF et CONCAT complexe

Bonjour,
Code :
1
2
3
4
5
6
 
IF(
lieu_naissance <> NULL,
CONCAT(DATE_FORMAT(date_naissance, '%d/%m/%Y'), ' à ', lieu_naissance),
date_naissance
) AS naissance
Ce code ne fonctionne pas.

Merci d'avance pour votre aide...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 13h09   #2
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 440
Points : 6 440
Bonjour,

Qu'est-ce qui "ne fonctionne pas" ? Un message d'erreur ? Un résultat inattendu ?
Au passage, il faut remplacer par Autre remarque, les 2 valeurs renvoyées par le IF sont de types différents : le premier est une chaîne de caractères et l'autre une date. Il faut que ce soit le même type (même si MySQL effectue des conversions de type implicites).

ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 13h34   #3
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Code :
1
2
3
4
5
6
 
IF(
m.lieu_naissance IS NOT NULL,
CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance),
CAST(m.date_naissance AS CHAR)
) AS Naissance
Modifiée ainsi, ca marche mais j'ai des résultats inattendus.
Citation:
06/01/1939 à Mbiane
C'est un bon résultat.
Citation:
29/03/1945 à
Mais celui est mauvais, car je veux " à " uniquement quand
Code :
m.lieu_naissance IS NOT NULL
Quelle est mon erreur?
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h02   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Essaie plutôt avec un CASE :
Code :
1
2
3
4
5
CASE 
    WHEN m.lieu_naissance IS NOT NULL 
        THEN CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance)
    ELSE CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR)
END AS Naissance
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h13   #5
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
@CinePhil : merci, mais j'ai le même résultat. Je ne connais pas cette façon.
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h18   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Si tu as 'une_date à' alors que la colonne m.lieu_naissance est bel et bien NULL, ce n'est pas logique !

Es-tu sûr que la colonne soit à NULL et non pas qu'elle contienne une chaîne vide ?
Si tu as certaines lignes avec des NULL et d'autres avec des chaînes vides, complète la condition :
Code :
1
2
3
4
5
CASE 
    WHEN m.lieu_naissance IS NOT NULL OR m.lieu_naissance = ''
        THEN CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance)
    ELSE CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR)
END AS Naissance
Tu peux aussi mettre à jour les lignes qui ont une chaîne vide pour les mettre à NULL.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h25   #7
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CASE valeur 
    WHEN [compare-value] THEN résultat [WHEN [compare-value] 
        THEN résultat ...] 
    [ELSE résultat] 
END, 
CASE 
    WHEN [condition] 
        THEN résultat 
    [WHEN [condition] 
        THEN résultat ...] 
    [ELSE résultat] 
END
Quelqu'un pourrait m'expliquer cette syntaxe et comment ca fonctionne ? Est-ce je l'ai bien indenté ce code?
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 16h45   #8
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par okoweb Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
CASE valeur 
  WHEN [compare-value] THEN résultat 
  [WHEN [compare-value] THEN résultat ...] 
  [ELSE résultat] 
END, 
 
CASE 
  WHEN [condition] THEN résultat 
  [WHEN [condition] THEN résultat ...] 
  [ELSE résultat] 
END
Quelqu'un pourrait m'expliquer cette syntaxe ?
En fait tu as donné les deux syntaxes possibles. La seconde peut s'appliquer tout le temps, la première est plus limitée puisqu'elle ne teste qu'une expression.

1ère syntaxe :
Code :
1
2
3
4
5
CASE valeur 
  WHEN [compare-value] THEN résultat 
  [WHEN [compare-value] THEN résultat ...] 
  [ELSE résultat] 
END
Traduction :
Au cas ou l'expression "valeur" a la valeur "compare-value" alors la colonne retournée par la requête affiche la valeur "résultat". On peut répéter plusieurs WHEN. Si la "valeur" n'est égale à aucune "compare_value" alors (ELSE) la requête affiche le dernier résultat.

Exemple :
Code :
1
2
3
4
5
CASE sexe
  WHEN 1 THEN 'Homme'
  WHEN 2 THEN 'Femme'
  ELSE 'Inconnu'
END
=> L'évaluation ne peut se faire que sur la colonne "sexe". (on écrit de ces trucs parfois ! )

Seconde syntaxe :
Code :
1
2
3
4
5
CASE 
  WHEN [condition] THEN résultat 
  [WHEN [condition] THEN résultat ...] 
  [ELSE résultat] 
END
C'est le même principe sauf que l'expression évaluée peut être différente à chaque WHEN.

Le premier exemple peut ainsi s'écrire avec la seconde syntaxe :
Code :
1
2
3
4
5
CASE 
  WHEN sexe = 1 THEN 'Homme'
  WHEN sexe = 2 THEN 'Femme'
  ELSE 'Inconnu'
ENDAS Sexe
Autre exemple où on affiche le nom du contact client s'il existe, à défaut le nom du directeur, à défaut "Néant".
Code :
1
2
3
4
5
CASE
  WHEN contact IS NOT NULL THEN 'Contact : ' || p1.prs_nom || p1.prs_prenom
  WHEN dirigeant IS NOT NULL THEN 'Dirigeant : ' || p2.prs_nom || p2.prs_prenom
  ELSE 'Néant'
END AS Contact_client
=> On teste successivement les colonnes "contact" et "directeur".
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 17h22   #9
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
@CinePhil : Merci pour ces détails...
Code :
1
2
 
'Contact : ' || p1.prs_nom || p1.prs_prenom
Que veut stipuler cette expression?
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 18h16   #10
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Citation:
Envoyé par CinePhil Voir le message
Si tu as 'une_date à' alors que la colonne m.lieu_naissance est bel et bien NULL, ce n'est pas logique !

Es-tu sûr que la colonne soit à NULL et non pas qu'elle contienne une chaîne vide ?
Exactement le problème était à ce niveau.
Code :
1
2
3
4
5
6
 
CASE 
    WHEN m.lieu_naissance <> ''
        THEN CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance)
    ELSE CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR)
END AS Naissance
Avec ce code le résultat est bon.

Citation:
Envoyé par CinePhil Voir le message
Tu peux aussi mettre à jour les lignes qui ont une chaîne vide pour les mettre à NULL.
J'ai modifié tous les champs vide à 'NULL'
Citation:
`lieu_naissance` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
et code :
Code :
1
2
3
4
5
6
 
CASE 
    WHEN m.lieu_naissance IS NOT NULL 
        THEN CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance)
    ELSE CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR)
END AS Naissance
me renvoie des résultats de ce genre pour des m.lieu_naissance = 'NULL' :
Citation:
29/03/1945 à NULL
Je deviens fou.
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2011, 19h19   #11
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par okoweb Voir le message
@CinePhil : Merci pour ces détails...
Code :
1
2
 
'Contact : ' || p1.prs_nom || p1.prs_prenom
Que veut stipuler cette expression?
La double barre verticale est l'opérateur normalisé pour la concaténation des chaînes de caractères en SQL. Ci-dessus on concatène donc la chaîne 'Contact : ' avec le nom et le prénom.
J'aurais d'ailleurs faire plutôt comme ci-dessous pour éviter de coller le nom et le prénom :
Code :
1
2
 
'Contact : ' || p1.prs_nom || ' ' || p1.prs_prenom
Citation:
J'ai modifié tous les champs vide à 'NULL'
Code :
`lieu_naissance` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
En faisant ça, tu as seulement imposé, si ce n'était pas déjà le cas, que la valeur par défaut pour la colonne 'lieu_naissance' des nouvelles lignes de la table soit à NULL.

Pour mettre toutes les chaînes vides existantes à NULL, il faut faire cette requête :
Code :
1
2
3
UPDATE ta_table
SET lieu_naissance = NULL -- seul cas où on peut écrire "= NULL" !
WHERE lieu_naissance = ''
Citation:
me renvoie des résultats de ce genre pour des m.lieu_naissance = 'NULL' :
Citation:
29/03/1945 à NULL
Comme je l'ai indiqué dans ma requête juste au dessus, le seul cas où on peut écrire "= NULL" est dans une requête UPDATE. Sinon il faut employer IS NULL ou IS NOT NULL car NULL est un marqueur qui n'est égal à rien, pas même à NULL ; ce n'est pas une valeur.
Si tu obtiens de tels résultats, c'est sans doute que maintenant tu as des lieu_naissance dont la valeur est la chaîne de caractères 'NULL' ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h40   #12
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Citation:
Envoyé par CinePhil Voir le message
Comme je l'ai indiqué dans ma requête juste au dessus, le seul cas où on peut écrire "= NULL" est dans une requête UPDATE. Sinon il faut employer IS NULL ou IS NOT NULL car NULL est un marqueur qui n'est égal à rien, pas même à NULL ; ce n'est pas une valeur.
Si tu obtiens de tels résultats, c'est sans doute que maintenant tu as des lieu_naissance dont la valeur est la chaîne de caractères 'NULL' ?
Voici à propos mon code avec IS NOT NULL :
Code :
1
2
3
4
5
6
 
CASE 
    WHEN m.lieu_naissance IS NOT NULL
        THEN CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance)
    ELSE CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR)
END AS Naissance
Mais pourquoi encore ce résultat :
Citation:
12/04/1973 à NULL
Merci d'avance...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h49   #13
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Code :
1
2
3
4
5
6
 
CASE 
    WHEN m.lieu_naissance <> 'NULL'
        THEN CONCAT(CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR), ' à ', m.lieu_naissance)
    ELSE CAST(DATE_FORMAT(m.date_naissance, '%d/%m/%Y') AS CHAR)
END AS Naissance
Le code ci-dessus me donne des bons résultats. Est-ce le fait de remplir les lieux de naissance de cette manière était une mauvaise approche :
Code :
1
2
3
4
 
UPDATE ta_table
SET lieu_naissance = 'NULL'
WHERE lieu_naissance = ''
Merci d'avance...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h50   #14
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
La réponse à ta question est là :
Citation:
Si tu obtiens de tels résultats, c'est sans doute que maintenant tu as des lieu_naissance dont la valeur est la chaîne de caractères 'NULL' ?
Que donne la requête suivante ?
Code :
1
2
3
SELECT *
FROM ta_table
WHERE lieu_naissance = 'NULL'
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 15h59   #15
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Citation:
Envoyé par CinePhil Voir le message
La réponse à ta question est là :
J'ai l'impression que vous n'aviez pas vu mon dernier post.
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 16h07   #16
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Tu as posté ton second message à 15h49 et ma réponse est venue à 15h50 donc effectivement, je n'avais pas pu voir ton message.

Citation:
Le code ci-dessus me donne des bons résultats. Est-ce le fait de remplir les lieux de naissance de cette manière était une mauvaise approche :
Code :
1
2
3
UPDATE ta_table
SET lieu_naissance = 'NULL'
WHERE lieu_naissance = ''
Oui, ce n'est pas la chaîne de caractères 'NULL' mais le marqueur NULL sans apostrophes qu'il faut utiliser !
Regarde la différence dans la coloration syntaxique avec cette requête qui est la bonne :
Code :
1
2
3
UPDATE ta_table
SET lieu_naissance = NULL
WHERE lieu_naissance = ''
Donc maintenant que tu as des valeurs 'NULL' il faut aussi faire cette mise à jour :
Code :
1
2
3
UPDATE ta_table
SET lieu_naissance = NULL
WHERE lieu_naissance = 'NULL'
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 16h49   #17
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Pour l'objet de ce post ca va, mais je souhaite quelques éclaircis sur :
Code :
1
2
 
'Contact : ' || p1.prs_nom || ' ' || p1.prs_prenom
Quelle différence avec le "CONCAT"?

Merci d'avance...
okoweb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 18h10   #18
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 998
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 998
Points : 18 262
Points : 18 262
Envoyer un message via MSN à CinePhil
Comme dit plus haut, la double barre verticale est l'opérateur standard en SQL pour concaténer les chaînes de caractères mais je crois que MySQL ne le connait pas et qu'il a implémenté CONCAT à la place.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2011, 18h20   #19
Membre éclairé
 
Homme Gérard Okono
Développeur Web
Inscription : juillet 2006
Messages : 707
Détails du profil
Informations personnelles :
Nom : Homme Gérard Okono
Localisation : Cameroun

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : juillet 2006
Messages : 707
Points : 328
Points : 328
Citation:
Envoyé par CinePhil Voir le message
Comme dit plus haut, la double barre verticale est l'opérateur standard en SQL pour concaténer les chaînes de caractères mais je crois que MySQL ne le connait pas et qu'il a implémenté CONCAT à la place.
GRAND maitre, merci...
okoweb 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 23h46.


 
 
 
 
Partenaires

Hébergement Web