Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL :Utilisation de GROUP BY avec des littéraux de chaîne

Peut-être que vous voulez quelque chose comme :

GROUP BY IF(fullName LIKE '%/testfolder/%', 1, IF(fullName LIKE '%/testfolder2/%', 2, 3))

L'idée clé à comprendre est qu'une expression comme fullName LIKE foo AND fullName LIKE bar est que l'expression entière sera nécessairement évaluée à TRUE ou FALSE , vous ne pouvez donc obtenir que deux groupes au total.

Utiliser un IF expression pour renvoyer l'un de plusieurs des valeurs différentes vous permettront d'obtenir plus de groupes.

Gardez à l'esprit que ce ne sera pas particulièrement rapide. Si vous avez un ensemble de données très volumineux, vous devriez explorer d'autres moyens de stocker les données qui ne nécessiteront pas LIKE comparaisons pour faire le regroupement.