В MySQL, CHAR()
функцията връща символа за всяко предадено цяло число. С други думи, можете да подадете едно или повече цели числа и функцията ще ги интерпретира като кодови стойности за низови знаци и ще върне съответния низ за всяка стойност на кода.
Синтаксис
Синтаксисът е така:
CHAR(N,... [USING charset_name])
Където N,...
е едно или повече цели числа и USING charset_name
е незадължителен аргумент, който можете да използвате, за да посочите набора от знаци, който да използвате.
Пример 1 – Основна употреба
Ето пример за демонстриране на основното използване:
SELECT CHAR(67, 97, 116);
Резултат:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
Така че, ако променим едно от целите числа, получаваме различен низ:
SELECT CHAR(66, 97, 116);
Резултат:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
Пример 2 – Клауза USING
Ето пример за добавяне на USING
клауза за определяне на UTF-8 кодиране:
SELECT CHAR(0xc2a9 USING utf8);
Резултат:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
И ето още един пример, в който посочвам кодовата точка на Unicode:
SELECT CHAR(0x027FE USING ucs2);
Резултат:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
Пример 3 – Множество резултатни байта
Аргументи, по-големи от 255, се преобразуват в множество резултатни байтове. Ето пример за демонстрация.
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
Резултат:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
И ако увеличим числата:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
Резултат:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+