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

CHAR() Exemples dans MySQL

Dans MySQL, le CHAR() La fonction renvoie le caractère pour chaque entier passé. En d'autres termes, vous pouvez transmettre un ou plusieurs entiers, et la fonction les interprétera comme des valeurs de code pour les caractères de chaîne et renverra la chaîne correspondante pour chaque valeur de code.

Syntaxe

La syntaxe ressemble à ceci :

CHAR(N,... [USING charset_name])

N,... est un ou plusieurs entiers, et USING charset_name est un argument facultatif que vous pouvez utiliser pour spécifier le jeu de caractères à utiliser.

Exemple 1 - Utilisation de base

Voici un exemple pour illustrer l'utilisation de base :

SELECT CHAR(67, 97, 116);

Résultat :

+-------------------+
| CHAR(67, 97, 116) |
+-------------------+
| Cat               |
+-------------------+

Ainsi, si nous modifions l'un des entiers, nous obtenons une chaîne différente :

SELECT CHAR(66, 97, 116);

Résultat :

+-------------------+
| CHAR(66, 97, 116) |
+-------------------+
| Bat               |
+-------------------+

Exemple 2 – La clause USING

Voici un exemple d'ajout du USING clause pour spécifier l'encodage UTF-8 :

SELECT CHAR(0xc2a9 USING utf8);

Résultat :

+-------------------------+
| CHAR(0xc2a9 USING utf8) |
+-------------------------+
| ©                       |
+-------------------------+

Et voici un autre exemple où je spécifie le point de code unicode :

SELECT CHAR(0x027FE USING ucs2);

Résultat :

+--------------------------+
| CHAR(0x027FE USING ucs2) |
+--------------------------+
| ⟾                        |
+--------------------------+

Exemple 3 – Plusieurs octets de résultat

Les arguments supérieurs à 255 sont convertis en plusieurs octets de résultat. Voici un exemple pour illustrer.

SELECT 
  HEX(CHAR(1,0)), 
  HEX(CHAR(256)),
  HEX(CHAR(1,1)), 
  HEX(CHAR(257));

Résultat :

+----------------+----------------+----------------+----------------+
| HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) |
+----------------+----------------+----------------+----------------+
| 0100           | 0100           | 0101           | 0101           |
+----------------+----------------+----------------+----------------+

Et si on augmente les nombres :

SELECT 
  HEX(CHAR(7,0)), 
  HEX(CHAR(1792)),
  HEX(CHAR(7,7)), 
  HEX(CHAR(1799));

Résultat :

+----------------+-----------------+----------------+-----------------+
| HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) |
+----------------+-----------------+----------------+-----------------+
| 0700           | 0700            | 0707           | 0707            |
+----------------+-----------------+----------------+-----------------+