Trong MySQL, CHAR()
hàm trả về ký tự cho mỗi số nguyên được truyền vào. Nói cách khác, bạn có thể chuyển một hoặc nhiều số nguyên và hàm sẽ diễn giải chúng dưới dạng giá trị mã cho các ký tự chuỗi và trả về chuỗi tương ứng cho mỗi giá trị mã.
Cú pháp
Cú pháp như sau:
CHAR(N,... [USING charset_name])
Ở đâu N,...
là một hoặc nhiều số nguyên và USING charset_name
là một đối số tùy chọn mà bạn có thể sử dụng để chỉ định bộ ký tự sẽ sử dụng.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ để chứng minh cách sử dụng cơ bản:
SELECT CHAR(67, 97, 116);
Kết quả:
+-------------------+ | CHAR(67, 97, 116) | +-------------------+ | Cat | +-------------------+
Vì vậy, nếu chúng ta thay đổi một trong các số nguyên, chúng ta sẽ nhận được một chuỗi khác:
SELECT CHAR(66, 97, 116);
Kết quả:
+-------------------+ | CHAR(66, 97, 116) | +-------------------+ | Bat | +-------------------+
Ví dụ 2 - Mệnh đề SỬ DỤNG
Dưới đây là một ví dụ về việc thêm USING
mệnh đề để chỉ định mã hóa UTF-8:
SELECT CHAR(0xc2a9 USING utf8);
Kết quả:
+-------------------------+ | CHAR(0xc2a9 USING utf8) | +-------------------------+ | © | +-------------------------+
Và đây là một ví dụ khác mà tôi chỉ định điểm mã unicode:
SELECT CHAR(0x027FE USING ucs2);
Kết quả:
+--------------------------+ | CHAR(0x027FE USING ucs2) | +--------------------------+ | ⟾ | +--------------------------+
Ví dụ 3 - Nhiều byte kết quả
Các đối số lớn hơn 255 được chuyển đổi thành nhiều byte kết quả. Đây là một ví dụ để chứng minh.
SELECT HEX(CHAR(1,0)), HEX(CHAR(256)), HEX(CHAR(1,1)), HEX(CHAR(257));
Kết quả:
+----------------+----------------+----------------+----------------+ | HEX(CHAR(1,0)) | HEX(CHAR(256)) | HEX(CHAR(1,1)) | HEX(CHAR(257)) | +----------------+----------------+----------------+----------------+ | 0100 | 0100 | 0101 | 0101 | +----------------+----------------+----------------+----------------+
Và nếu chúng ta tăng số lượng:
SELECT HEX(CHAR(7,0)), HEX(CHAR(1792)), HEX(CHAR(7,7)), HEX(CHAR(1799));
Kết quả:
+----------------+-----------------+----------------+-----------------+ | HEX(CHAR(7,0)) | HEX(CHAR(1792)) | HEX(CHAR(7,7)) | HEX(CHAR(1799)) | +----------------+-----------------+----------------+-----------------+ | 0700 | 0700 | 0707 | 0707 | +----------------+-----------------+----------------+-----------------+