SQL Academy
Premium
Funktionsreferenz

CHAR

Entsprechung in PostgreSQL:

Gibt einen String aus den Bytes mit den angegebenen Codes zurück.

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);
CHAR(72, 105)
Hi

NULL unter den Codes überspringen

MySQL 8.1
SELECT CHAR(83, NULL, 81, 76);
CHAR(83, NULL, 81, 76)
SQL

Kyrillischer Buchstabe aus UTF-8-Bytes

MySQL 8.1
SELECT CHAR(208, 191 USING utf8mb4) AS letter;
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;
binary_stringtext_string
Hihi

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).

Siehe auch