In MySQL, il CHAR()
La funzione restituisce il carattere per ogni intero passato. In altre parole, puoi passare uno o più numeri interi e la funzione li interpreterà come valori di codice per i caratteri stringa e restituirà la stringa corrispondente per ogni valore di codice.
Sintassi
La sintassi è questa:
CHAR(N,... [USING charset_name])
Dove N,...
è uno o più numeri interi e USING charset_name
è un argomento facoltativo che puoi utilizzare per specificare il set di caratteri da utilizzare.
Esempio 1 – Utilizzo di base
Ecco un esempio per dimostrare l'utilizzo di base:
SELECT CHAR(67, 97, 116);
Risultato:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
Quindi, se cambiamo uno degli interi, otteniamo una stringa diversa:
SELECT CHAR(66, 97, 116);
Risultato:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
Esempio 2 – La clausola USING
Ecco un esempio di aggiunta di USING
clausola per specificare la codifica UTF-8:
SELECT CHAR(0xc2a9 USING utf8);
Risultato:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
Ed ecco un altro esempio in cui specifico il punto di codice unicode:
SELECT CHAR(0x027FE USING ucs2);
Risultato:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
Esempio 3 – Byte di risultati multipli
Gli argomenti più grandi di 255 vengono convertiti in più byte di risultati. Ecco un esempio da dimostrare.
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
Risultato:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
E se aumentiamo i numeri:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
Risultato:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+