W MySQL, CHAR()
funkcja zwraca znak dla każdej przekazanej liczby całkowitej. Innymi słowy, możesz przekazać jedną lub więcej liczb całkowitych, a funkcja zinterpretuje je jako wartości kodu dla znaków ciągu i zwróci odpowiedni ciąg dla każdej wartości kodu.
Składnia
Składnia wygląda tak:
CHAR(N,... [USING charset_name])
Gdzie N,...
to jedna lub więcej liczb całkowitych, a USING charset_name
jest opcjonalnym argumentem, którego możesz użyć do określenia zestawu znaków do użycia.
Przykład 1 – Podstawowe użycie
Oto przykład demonstrujący podstawowe użycie:
SELECT CHAR(67, 97, 116);
Wynik:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
Więc jeśli zmienimy jedną z liczb całkowitych, otrzymamy inny ciąg:
SELECT CHAR(66, 97, 116);
Wynik:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
Przykład 2 – Klauzula UŻYWANIE
Oto przykład dodawania USING
klauzula określająca kodowanie UTF-8:
SELECT CHAR(0xc2a9 USING utf8);
Wynik:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
A oto kolejny przykład, w którym określam punkt kodowy Unicode:
SELECT CHAR(0x027FE USING ucs2);
Wynik:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
Przykład 3 – Wiele bajtów wyników
Argumenty większe niż 255 są konwertowane na wiele bajtów wyników. Oto przykład do zademonstrowania.
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
Wynik:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
A jeśli zwiększymy liczby:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
Wynik:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+