J'ai la requête suivante:clause WHERE IN group_concat
SELECT name, GROUP_CONCAT(job SEPARATOR ','),
count(*) FROM users GROUP BY name ORDER BY name ASC
Est-il possible de ne concat les domaines d'emploi qui ne contiennent pas « », et si oui comment? Je ne peux pas faire une clause WHERE, parce que j'ai encore besoin de ceux qui n'ont pas de 'job'.
image le tableau suivant:
+-------+----------+
| name | job |
+-------+----------+
| Bob | doctor |
| Bob | teacher |
| Frank | dentist |
| Tom | |
| Tom | |
| Tom | |
| Tom | |
| Tom | salesman |
+-------+----------+
La requête actuelle se traduirait par:
+--------+---------------------------------+----------+
| name | GROUP_CONCAT(job SEPARATOR ',') | count(*) |
+--------+---------------------------------+----------+
| Bob | doctor, teacher | 2 |
| Frank | dentist | 1 |
| Tom | ,,,,salesman | 5 |
+--------+---------------------------------+----------+
Mais je veux que ce soit:
+--------+---------------------------------+----------+
| name | GROUP_CONCAT(job SEPARATOR ',') | count(*) |
+--------+---------------------------------+----------+
| Bob | doctor,teacher | 2 |
| Frank | dentist | 1 |
| Tom | salesman | 5 |
+--------+---------------------------------+----------+
(Ne prêtez pas attention logique de cette table, c'est juste un exemple simple pour clarifier les choses)
Raison pour cela, je vais exploser() le GROUP_CONCAT (travail SEPARATOR ',') en PHP, et dans le tableau actuel, il y aura facilement 1000 inutiles, et cela ferait la fonction exploser très lent. Merci,
lordstyx.
J'ai mis à jour la question initiale un peu, parce que ce n'est pas vraiment ce que je veux dire. Merci quand même – lordstyx