V MySQL je to CHAR()
funkce vrací znak pro každé předané celé číslo. Jinými slovy, můžete zadat jedno nebo více celých čísel a funkce je bude interpretovat jako hodnoty kódu pro znaky řetězce a pro každou hodnotu kódu vrátí odpovídající řetězec.
Syntaxe
Syntaxe vypadá takto:
CHAR(N,... [USING charset_name])
Kde N,...
je jedno nebo více celých čísel a USING charset_name
je volitelný argument, který můžete použít k určení znakové sady, která se má použít.
Příklad 1 – Základní použití
Zde je příklad demonstrující základní použití:
SELECT CHAR(67, 97, 116);
Výsledek:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
Pokud tedy změníme jedno z celých čísel, dostaneme jiný řetězec:
SELECT CHAR(66, 97, 116);
Výsledek:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
Příklad 2 – Klauzule USING
Zde je příklad přidání USING
klauzule k určení kódování UTF-8:
SELECT CHAR(0xc2a9 USING utf8);
Výsledek:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
A zde je další příklad, kde určuji bod kódu unicode:
SELECT CHAR(0x027FE USING ucs2);
Výsledek:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
Příklad 3 – Více bajtů výsledku
Argumenty větší než 255 se převedou na více výsledných bajtů. Zde je příklad k demonstraci.
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
Výsledek:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
A pokud čísla zvýšíme:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
Výsledek:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+