[mySQL] concat de plusieurs enregistrement

concat de plusieurs enregistrement [mySQL] - SQL/NoSQL - Programmation

Marsh Posté le 05-06-2003 à 08:44:41    

Salut ,
Je fais un requête de ce genre :
select nom from personne
Mais cela m'arrangerai pas mal si je pouvais avoir une requete me renvoyant un unique chaine contenant les différents enregistrement  séparés par un certain caractère .  
 
exemple :
TOTO - DUDULE - DUTIF
 
Vous savez si y'a moyen ?

Reply

Marsh Posté le 05-06-2003 à 08:44:41   

Reply

Marsh Posté le 05-06-2003 à 11:38:01    

Up  :bounce:

Reply

Marsh Posté le 05-06-2003 à 11:54:23    

euh, je dis ça comme ça sans tester
 

Code :
  1. $query=mysql_query("SELECT * from PERSONNE" );
  2. $chaine = "";
  3. while ( $p = mysql_fetch_object($query) )
  4. {
  5. $chaine = $chaine.$p->nom;
  6. }


 
voilà pour la concaténation, pour le reste à toi de jouer

Reply

Marsh Posté le 05-06-2003 à 12:14:11    

Bah en fait je cherche à le faire directement dans la requete, je sais que mySQL permet des tas de choses quand à la mise en forme d'une requête mais je ne sais pas si il peut Concatener plusieurs enregistrements directement...

Reply

Marsh Posté le 05-06-2003 à 12:18:41    

là je peux pas t'aider, en sql je connais que les bases... Mais ça m'intéresse, donc up!

Reply

Marsh Posté le 05-06-2003 à 12:21:40    

Reply

Marsh Posté le 05-06-2003 à 14:26:24    

Je n'y vois pas ce dont j'ai besoin...Dois-je en déduire que ça n'existe pas ?

Reply

Marsh Posté le 05-06-2003 à 16:01:59    

Tu peux tester un truc de ce style là
 
select concat(nom, " - " )
from personne
 
Je ne sais pas du tout si ça marche mais c une idée
C'est peut-être totalement idiot mais test qd meme on ne sais jamais

Reply

Marsh Posté le 05-06-2003 à 16:06:11    

Bah je sais pas si c'est idiot mais en tout cas ça marche pas.
ça fait  
TOTO -
DUDULE -
DUTIF -
 
moi je veux tout sur la même ligne
TOTO - DUDULE - DUTIF

Reply

Marsh Posté le 05-06-2003 à 21:24:28    

Ramener sur une ligne = impossible, du moins, à priori, puisque c'est supporté par aucun SGBD à ma connaissance, hormis Oracle avec un package spécial (payant)

Reply

Marsh Posté le 05-06-2003 à 21:24:28   

Reply

Marsh Posté le 24-07-2008 à 09:50:04    

up, qu'en est il en 2008 ?! je souhaite concaténer des résultats provenant de plusieurs lignes d'un meme select (en fait c'est pour la création d'une vue donc je préfere éviter de le faire en PHP et de n'utiliser que le MySQL)

Reply

Marsh Posté le 24-07-2008 à 10:14:36    


J'ai trouvé en fait ^^  
 
SELECT GROUP_CONCAT(CONCAT( FIRST_NAME,' ', LAST_NAME)
       ORDER BY LAST_NAME DESC SEPARATOR "##" )
       FROM physician
       ;
 
me retourne sur une ligne : 'prenom1 nom1##prenom2 nom2)
 
apparement c'est en place depuis la version 4.1 de mysql

Reply

Marsh Posté le 24-07-2008 à 13:24:54    

ouah c'te déterrage :o

Reply

Marsh Posté le 27-01-2011 à 02:42:33    

Hehe merci pour l'astuce :)

Reply

Marsh Posté le 09-09-2014 à 23:58:51    

merci également pour l'info...  :)

Reply

Marsh Posté le 10-09-2014 à 14:35:21    

Sinon, y'avait par procédure stockée je pense...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed