6
votes

Comment mettre les conditions de filtre sur les colonnes GROUP_CONCAT?

TABLEAU 1
select name, group_concat(hobbies) as all_hobbies
from test1,test2
where test1.id = test2.ref_id 
and test1.id in (select ref_id
              from test2
              where hobbies = 'walking')
group by name


0 commentaires

3 Réponses :


0
votes

Je rejoindrais les deux tables. Ensuite, ID Sélectionnez la concaténation à l'aide de (champ A || champ B) et placez ma restriction dans la clause WHERE.


0 commentaires

6
votes

Je n'ai pas installé MySQL sur cette machine, mais essayez cette requête, je pense que cela devrait fonctionner. Vous pouvez penser à la clause sous forme de clause de votre groupe par . XXX


4 commentaires

Votre nom me donnera le résultat pour les personnes ayant des passe-temps marchant mais pas avec le nom 'Robin'. Donc, +1 pour avoir


@Derek, vous pouvez utiliser des alias dans avoir , mais pas dans , la raison étant que celle-ci est évaluée en dernier, tous les alias sont connus, tandis que tous les alias sont connus, alors que le où la clause peut être exécutée lorsque l'alias n'est pas encore résolu.


Voir Modifier - il vous suffit d'ajouter à la clause où la clause de la vérification du nom


Vous pouvez également utiliser avoir trouvé_in_set ('' walking ', hobbies) , cela frappera juste marcher mais rejette dogwalking .



1
votes

Il peut être accompli par:

having all_hobbies like '%walking%' or
name like '%robin%'


0 commentaires