Je fais un SQL assez gros afin que je présente des excuses que je ne peux pas fournir un grand exemple de mes tables.
if( 'network' IN ( concat('\'', GROUP_CONCAT(DISTINCT services.service_code SEPARATOR '\', \'' ), '\'') ), 'Yes','No')
4 Réponses :
et pour que cela fonctionne, il faudrait ressembler à ceci : p> au lieu de la place, essayez d'étudier le groupe_concat: (Notez le réseau p> p> Si cela ne fonctionne pas, essayez-le avec une sous-sélection: p> bien que ce soit beaucoup plus lent. P> p> group_concat code> ne fonctionne pas comme ceci, la requête après le groupe_concat ressemble à ceci:
Si ("Réseau" dans (Group_Concat (SERVICE DE SERVICE DISTRICT.SERVICE_CODE '\', \ '')), 'JA', 'Nej') code> devrait renvoyer une liste qui ressemble à
group_concat ('1', '2', '3', '4') code>, ressent de cette façon de toute façon. Mais ça ne marche pas. Omettre que le groupe_concat ne fonctionne que si 'Network' est le Service_Code présent sur la ligne de regroupement de messagerie instantanée et je ne peux pas faire commander par service_code. Un inconvénient des réseaux brise le SQL. Et je n'ai pas la possibilité d'utiliser une sous-requête. Merci pour votre réponse.
Je suis un gros fan fort> de group_concat code>, mais vous n'exigeez pas
group_concat code> dans ce cas
sum( if(services.service_code='network', 1, 0) ) as networkservice
Merci, jamais pensé à utiliser la somme. Je l'ai utilisé comme ce si (somme (si (service.service_code = 'Network', 1, 0))> 0, 'oui', 'non) comme réseauservice CODE> et cela fonctionne bien.
utilisera l'aide du code ci-dessous?
IF((GROUP_CONCAT(Direct SEPARATOR ',' ) REGEXP 'Y' ), 'Yes','No') AS Direct
La fonction group_concat code> renvoie une chaîne afin que vous puissiez utiliser
wind_in_set code>. Il faut une chaîne séparée par des virgules comme un deuxième argument.
IF( FIND_IN_SET ('network', GROUP_CONCAT( DISTINCT services.service_code SEPARATOR ',' ) ), 'Yes','No') as networkservice
J'apprécie fortement cela dans la clause (dans mon cas). ;)