MySQL CHAR() 函式



MySQL 的CHAR()函式接受一個或多個整數值作為引數,並返回一個包含由給定整數表示的字元的字串。如果輸入為NULL,則該函式將忽略它們。

您可以使用USING子句指定結果的所需字元集。如果您在MySQL客戶端中呼叫此函式,則二進位制字串將使用十六進位制表示法顯示。

此函式可用於各種場景,例如將數字程式碼轉換為字元或在字元和數字格式之間轉換資料型別。

語法

以下是MySQL CHAR()函式的語法:

CHAR(N,... [USING charset_name])

引數

此函式採用整數或字串值作為引數,表示Unicode程式碼點。

返回值

此函式返回給定輸入的相應字元。

示例

在這個例子中,我們使用CHAR()函式將一系列整數和十六進位制值轉換為字串:

SELECT CHAR(74, 75, 74, '6F', 72, 69, 61, '6C', 73, 70, '6F', 69, '6E', 74);

以上程式碼的輸出如下:

CHAR(74, 75, 74, '6F', 72, 69, 61, '6C', 73, 70, '6F', 69, '6E', 74)
0x4A4B4A0648453D0649460645064A

示例

在這個例子中,我們將一系列整數轉換為字串:

SELECT CHAR(61, 62, 63, 64, 65, 66, 67);

以上程式碼的輸出如下:

CHAR(61, 62, 63, 64, 65, 66, 67)
0x3D3E3F40414243

示例

如果將空字串作為引數傳遞,則該函式返回空字元:

SELECT CHAR('');

獲得的輸出如下:

CHAR('')
0x00

示例

當您將NULL值作為引數傳遞時,結果為空字串:

SELECT CHAR(NULL);

產生的結果如下:

CHAR(NULL)
0x

示例

您可以使用USING子句指定結果的字元集。在這個例子中,我們使用UTF-8字元集將十六進位制值'75'轉換為字元:

SELECT CHAR(X'75' USING utf8);

我們得到如下輸出:

CHAR(X'75' USING utf8)
u

示例

如果傳遞給CHAR()函式的引數大於255,則它將返回多個結果位元組,顯示等效集:

SELECT HEX(CHAR(1,0,0,0)), HEX(CHAR(256*256*256));

以上程式碼的輸出如下:

HEX(CHAR(1,0,0,0)) HEX(CHAR(256*256*256))
01000000 01000000

示例

您還可以使用CHAR()函式將儲存在表中的數字程式碼轉換為字元。

讓我們建立一個名為“STUDENTS_TABLE”的表,並使用CREATE和INSERT語句向其中插入記錄,如下所示:

CREATE TABLE STUDENTS_TBL (
   name VARCHAR(15),
   marks INT,
   grade INT
);

現在,讓我們使用INSERT語句向其中插入記錄:

INSERT INTO STUDENTS_TBL VALUES 
('Raju', 80, '65'),
('Rahman', 60, '66'),
('Robert', 45, '67');

獲得的STUDENTS_TBL如下:

姓名 分數 等級
Raju 80 65
Rahman 60 66
Robert 45 67

要使用UTF-8字元集檢索與等級值對應的字元,您可以按如下方式使用CHAR()函式:

SELECT *, CHAR(GRADE USING utf8) FROM STUDENTS_TBL;

執行以上程式碼後,我們將得到以下輸出:

姓名 分數 等級 CHAR(grade USING utf8)
Raju 80 65 A
Rahman 60 66 B
Robert 45 67 C
mysql-char-function.htm
廣告