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

Fonctionnement de la fonction EXPORT_SET() dans MySQL

Le MySQL EXPORT_SET() La fonction renvoie une chaîne qui représente les bits d'un nombre.

Vous avez la possibilité de personnaliser la façon dont la fonction génère la chaîne. La fonction accepte un certain nombre d'arguments qui vous permettent de le faire. Lorsque vous appelez la fonction, vous fournissez le numéro en question, ainsi que des arguments qui déterminent l'affichage des résultats.

Syntaxe

La syntaxe ressemble à ceci :

EXPORT_SET(bits,on,off[,separator[,number_of_bits]])

Voici une explication des arguments :

bits
Il s'agit du numéro pour lequel vous souhaitez que les résultats soient renvoyés. Pour chaque bit défini dans cette valeur, vous obtenez un on chaîne, et pour chaque bit qui n'est pas défini dans la valeur, vous obtenez un off corde. Les bits sont examinés de droite à gauche (des bits de poids faible aux bits de poids fort).
sur
Voici ce qui est renvoyé pour tout sur bits.
désactivé
C'est ce qui est renvoyé pour tout off bits.
séparateur
Il s'agit d'un argument facultatif que vous pouvez utiliser pour spécifier le séparateur à utiliser. La valeur par défaut est le caractère virgule. Par conséquent, si vous ne spécifiez pas cet argument, une virgule est utilisée comme séparateur.
number_of_bits
Le nombre de bits à examiner. La valeur par défaut est 64. Si vous fournissez une valeur plus grande, celle-ci est silencieusement tronquée à 64 si elle est supérieure à 64.

Exemple 1 - Utilisation de base

Voici un exemple pour illustrer l'utilisation de base de cette fonction.

SELECT EXPORT_SET(9,'On','Off',',',4);

Résultat :

+---------------------------------------------+| EXPORT_SET(9,'On','Off',',',4) |+------------------------------ --+| Activé, Désactivé, Désactivé, Activé |+---------------------------------------------+

Afin de comprendre ce résultat, nous devons comprendre comment le nombre 9 est représenté en bits. Pour ce faire, nous pouvons utiliser le BIN() fonction pour afficher la représentation binaire du nombre 9.

SELECT BIN(9);

Résultat :

+--------+| BIN(9) |+--------+| 1001 |+--------+

Nous pouvons donc voir que la représentation binaire de 9 est 1001 . Chaque 1 est un sur bit (il est défini) et chaque 0 est un off bit (il n'est pas défini).

Exemple 2 - Modifier les 2e et 3e arguments

Nous pouvons reprendre l'exemple précédent et modifier les deuxième et troisième arguments.

SELECT EXPORT_SET(9,'Y','N',',',4);

Résultat :

+-----------------------------+| EXPORT_SET(9,'Y','N',',',4) |+------------------------------------------+ | O,N,N,O |+----------------------------+

Alors maintenant pour chaque sur peu, nous obtenons Y , et chaque éteint le bit renvoie N .

Nous pourrions même le changer pour que les uns et les zéros soient renvoyés :

SELECT EXPORT_SET(9,1,0,',',4);

Résultat :

+-------------------------+| EXPORT_SET(9,1,0,',',4) |+-------------------------+| 1,0,0,1 |+------------------------------+

Exemple 3 - Changer le 4ème Argument (le séparateur)

Dans les exemples précédents, nous spécifions explicitement une virgule comme séparateur. C'est aussi la valeur par défaut.

Nous pouvons remplacer le séparateur par autre chose si nécessaire.

SELECT EXPORT_SET(9,1,0,'-',4);

Résultat :

+-------------------------+| EXPORT_SET(9,1,0,'-',4) |+-------------------------+| 1-0-0-1 |+-------------------------+

Et voici ce qui se passe si nous spécifions la chaîne vide comme séparateur :

SELECT EXPORT_SET(9,1,0,'',4);

Résultat :

+------------------------+| EXPORT_SET(9,1,0,'',4) |+------------------------+| 1001 |+-----------------------+

Exemple 4 - Changer le 5ème argument

Le cinquième argument spécifie le nombre de bits à examiner. Dans l'exemple précédent, nous avons utilisé 4 comme valeur, donc seuls quatre bits ont été examinés (et renvoyés). Nous pouvons augmenter ou diminuer cela selon les besoins, en spécifiant une valeur différente comme quatrième argument.

SELECT EXPORT_SET(9,1,0,'-',10);

Résultat :

+-----------------------------------+| EXPORT_SET(9,1,0,'-',10) |+--------------------------+| 1-0-0-1-0-0-0-0-0-0 |+--------------------------+ 

Dans cet exemple, nous avons augmenté le nombre de bits examinés à 10.

N'oubliez pas que les bits sont examinés de droite à gauche, donc les zéros supplémentaires dans cet exemple sont en fait pour les zéros de poids fort. C'est donc dans l'ordre inverse de la représentation binaire réelle.

Voici un exemple pour illustrer ce que je veux dire :

SELECT BIN(567), EXPORT_SET(567,1,0,'',10);

Résultat :

+------------+----------------------+| BIN(567) | EXPORT_SET(567,1,0,'',10) |+------------+---------------------- -----+| 1000110111 | 1110110001 |+-----------+-----------------------------------+

Dans ce cas, ils ressemblent à des images miroir. Fondamentalement, le résultat de EXPORT_SET() est dans l'ordre inverse de BIN() .

La valeur par défaut du cinquième argument est 64, donc si nous omettons cet argument, c'est le nombre de bits qui seront examinés.

SELECT EXPORT_SET(9,1,0,'-');

Résultat :

+------------------------------------------------------------ -------------------------------------------------- ---------------------------------+| 1-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0 |+--------------------- -------------------------------------------------- -------------------------------------------------- --------+

Ceci est écrêté silencieusement à 64, donc si vous fournissez une valeur en dehors de cette plage, elle sera écrêtée à 64.

SELECT EXPORT_SET(9,1,0,'-',500);

Résultat :

+------------------------------------------------------------ -------------------------------------------------- ---------------------------------+| 1-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0 |+--------------------- -------------------------------------------------- -------------------------------------------------- --------+

C'est un entier non signé, donc même résultat si vous utilisez une valeur négative :

SELECT EXPORT_SET(9,1,0,'-',-4);

Résultat :

+------------------------------------------------------------ -------------------------------------------------- ---------------------------------+| 1-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0- 0-0-0-0-0-0-0-0-0-0-0-0-0-0 |+--------------------- -------------------------------------------------- -------------------------------------------------- --------+

Exemple 5 - Utilisation des valeurs par défaut

Nous pouvons omettre les deux derniers arguments afin d'utiliser les valeurs par défaut :

SELECT EXPORT_SET(9,'On','Off');

Résultat :

+------------------------------------------------------------ -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ---------+| Marche, Arrêt, Arrêt, Marche, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt, Arrêt |+--------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------+