MySQL 8.1
CHAR(num[, ...] [USING charset])Parameter
- numINT
- Bytecode; bei lateinischen Buchstaben, Ziffern und Satzzeichen stimmt er mit dem ASCII-Code überein, zum Beispiel 65 für A
- USING charsetSchlüsselwortoptional
- Zeichensatz, mit dem die Bytes gelesen werden, zum Beispiel utf8mb4; ohne ihn ist das Ergebnis ein binärer String
Rückgabewert
Binärer String aus den Bytes der angegebenen Codes, bei USING ein String in diesem Zeichensatz; NULL-Argumente werden übersprungen
Beispiele
String aus Zeichencodes
MySQL 8.1
SELECT CHAR(72, 105);NULL unter den Codes überspringen
MySQL 8.1
SELECT CHAR(83, NULL, 81, 76);Kyrillischer Buchstabe aus UTF-8-Bytes
MySQL 8.1
SELECT CHAR(208, 191 USING utf8mb4) AS letter;LOWER ändert einen binären String nicht
MySQL 8.1
SELECT LOWER(CHAR(72, 105)) AS binary_string,
LOWER(CHAR(72, 105 USING utf8mb4)) AS text_string;Details
Ohne USING ist das Ergebnis ein binärer String (CHARSET(CHAR(72)) gibt binary zurück): Vergleiche damit laufen Byte für Byte und beachten Groß- und Kleinschreibung, und LOWER und UPPER ändern ihn nicht. Für normalen Text gib einen Zeichensatz an: CHAR(72, 105 USING utf8mb4).
Jeder Code legt ein Byte fest, kein Zeichen: Ein kyrillischer Buchstabe belegt in utf8mb4 zwei Bytes, daher ist «п» CHAR(208, 191 USING utf8mb4). Ein Code größer als 255 wird mit mehreren Bytes geschrieben: CHAR(256) entspricht CHAR(1, 0).