首頁 > 資料庫 > mysql教程 > MySQL LENGTH() 函數如何測量字串長度?

MySQL LENGTH() 函數如何測量字串長度?

WBOY
發布: 2023-09-02 16:45:02
轉載
1492 人瀏覽過

MySQL LENGTH() 函数如何测量字符串长度?

MySQL LENGTH() 函數以「位元組」為單位測量字串長度,這表示它不是多位元組安全的。多位元組安全函數(如CHAR_LENGTH() 或CHARACTER_LENGTH())與LENGTH() 函數之間的結果差異特別與Unicode 相關,其中大多數字元都以兩個位元組進行編碼,或與UTF-8 相關,其中位元組數各不相同。例如,如果字串包含四個 2 個位元組字符,則 LENGTH() 函數將傳回 8,而 CHAR_LENGTH() 或 CHARACTER_LENGTH() 函數將傳回 4。如下例所示 -

範例

mysql> Select LENGTH('tutorialspoint');
+--------------------------+
| LENGTH('tutorialspoint') |
+--------------------------+
|                       14 |
+--------------------------+
1 row in set (0.00 sec)
登入後複製

上面的結果集顯示字串「tutorialspoint」的長度為14,因為它還沒有轉換為Unicode字元。以下查詢將其轉換為Unicode 字元-

mysql> SET @A = CONVERT('tutorialspoint' USING ucs2);
Query OK, 0 rows affected (0.02 sec)
登入後複製

將字串轉換為Unicode 後,結果為28 而不是14,因為在Unicode 中單一字元佔用2 個位元組,如下所示-

mysql> Select LENGTH(@A);
+------------+
| LENGTH(@A) |
+------------+
|         28 |
+------------+
1 row in set (0.00 sec)
登入後複製

但是CHAR_LENGTH() 給出的結果是14,因為它是多位元組安全函數,如下圖-

mysql> Select CHAR_LENGTH(@A);
+-----------------+
| CHAR_LENGTH(@A) |
+-----------------+
|              14 |
+-----------------+
1 row in set (0.00 sec)
登入後複製

以上是MySQL LENGTH() 函數如何測量字串長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板