Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Hàm ngược của CHAR() trong MySQL là ASCII() hay ORD()

CHAR() chuyển mã số thành ký tự. Hàm ngược là ASCII() (trả về mã của ký tự đầu tiên) hoặc ORD() (trả về mã ký tự đầu tiên, hỗ trợ multibyte).

Tạo bảng và dữ liệu

mysql> CREATE TABLE DemoTable(Value INT, Value1 CHAR(1), Value2 CHAR(1)); 
Query OK, 0 rows affected (0.80 sec)

mysql> INSERT INTO DemoTable VALUES(65,'A','A'), (97,'a','a'); 
Query OK, 2 rows affected

Kiểm tra CHAR(), ASCII(), ORD()

mysql> SELECT CHAR(Value), ASCII(Value1), ORD(Value2) FROM DemoTable;

Kết quả:

+-------------+---------------+-------------+
| CHAR(Value) | ASCII(Value1) | ORD(Value2) |
+-------------+---------------+-------------+
| A           | 65            | 65          |
| a           | 97            | 97          |
+-------------+---------------+-------------+

Phân biệt ASCII() vs ORD():

HàmMô tảMultibyte (UTF-8)
ASCII(str)Mã ASCII của ký tự đầu tiên (0-255)Chỉ lấy byte đầu, không đúng với Unicode
ORD(str)Mã Unicode code point của ký tự đầu tiênHỗ trợ đúng multibyte

Ví dụ multibyte: ORD('é') = 233, ASCII('é') = 195 (byte đầu của UTF-8 0xC3 0xA9).

Hàm liên quan: CHAR_LENGTH() (số ký tự), LENGTH() (số byte).