Bonjour,
Je veux faire une select de presque tous les champs d'une table. C'est à dire tous sauf ceux suffixés par _g.
J'ai eu l'idée d'un subselect qui me retourne la liste concaténée de tous les champs non suffixés :
Ca fonctionne comme attendu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'MonSchema' AND TABLE_NAME = 'MaTable' AND COLUMN_NAME NOT LIKE '%_g' ORDER BY ORDINAL_POSITION
J'obtiens un résultat sous la forme d'un seule ligne :
column name 1,column name 2, ...
Je tente donc de me resservir de ça dans la query suivante :
Et j'obtiens autant de ligne qu'attendu dans la table, sauf que ces lignes sont toutes identiques et contiennent la liste des champs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 SELECT (SELECT GROUP_CONCAT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'MonSchema' AND TABLE_NAME = 'MaTable' AND COLUMN_NAME NOT LIKE '%_g' ORDER BY ORDINAL_POSITION) from MaTable;
Comme si j'avais fait un :
Je soupçonne donc MySQL de prendre le résultat comme une simple chaîne de caractères ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Select 'Toto' from MaTable;
Comment éviter ça ?
Partager