EXPORT_SET

SELECT EXPORT_SET(5,'oui','non','|',7);

Créer une chaîne exprimant la représentation littérale de la valeur binaire de 5,

les 1 seront représentés par des oui et les 0 seront représentés par des non

le tout séparé par des |

Attention la chaîne est "inversée"

 1 -> 1   -> oui         
 2 -> 10  -> non|oui     
 3 -> 11  -> oui|oui     
 4 -> 100 -> non|non|oui     
 5 -> 101 -> oui|non|oui

Le dernier paramètre permet de complèter

EXPORT_SET(5,'oui','non','|',7)
---
oui|non|oui|non|non|non|non

MAKE_SET

MAKE_SET(valeur numérique,chaine1,chaine2,chaine3,chaine4)

Avec export_Set on avait une "oui" pour 1 "non" pour 0 Ici on a "chaine1" si le bit le plus a droite est à 1

Si plusieurs bit sont à 1 on aura donc plusieurs chaines. Celles-ci seront séparées par des virgules ,

Donc avec

12 -> 1100

on inverse

0011
abcd
SELECT MAKE_SET(4,'a','b','c','d');
-
c,d

On peut s'amuser

SELECT CONCAT('Je suis ',MAKE_SET(RAND()*5,'beau','grand','méchant','passionné'),' et fort')
---
Je suis beau,grand et fort

Notez qu'on peut utilisé le "ou" ou le "et"

SELECT MAKE_SET(1|4,'a','b','c','d');
-
a,c
MAKE_SET(4&5,'a','b','c','d')
-
c

Tout ceci , sans php.