question sur GROUP CONCAT
Bonjour tout le monde !
Je bosse actuellement sur un site de produits bio pour lequel je dois développer une page affichant tous les produits classés par catégorie. Jusqu'à présent, j'utilisais pour ce genre de demande une requete avec 2 GROUP CONCAT et je récupérais mes catégories avec un explode PHP puis les produits avec un second explode.
Mais lors d'un projet récent, j'ai été confronté au probleme de la taille maximale d'un champ group concat (group_concat_max_len). Je me demande comment faire les choses proprement pour mes produits bio. Voilà la structure de la table produits:
PRODUITS:
id
idcategorie
nom
provenance
texte
url
Et voila la requete avec les 2 CONCAT que j'aurais utilisé d'habitude:
Code:
1 2 3 4 5
|
SELECT id_categorie, GROUP_CONCAT( CONCAT( id, '=>', id_categorie, '=>', nom, '=>', provenance )
SEPARATOR '|' ) AS monChamp
FROM produits
GROUP BY id_categorie |
Est ce que ce type de requete est une aberration complète? Si oui, quelle est la bonne solution à choisir?
Si c'est comme ca qu'il faut s'y prendre, comment augmenter la taille du champ group_concat? J'ai lu qu'il fallait utiliser cette commande mais je ne comprends pas où et comment la mettre:
Code:
1 2
|
SET [SESSION | GLOBAL] group_concat_max_len = nbre de caractères; |
J'avoue que je suis très loin d'etre un connaisseur sur MySQl et que vos avis m'aideraient bien ;)