首頁  >  文章  >  資料庫  >  MySQL中CHARACTER_LENGTH()函數的用法詳解

MySQL中CHARACTER_LENGTH()函數的用法詳解

藏色散人
藏色散人原創
2019-04-25 17:06:097985瀏覽

在MySQL中,CHARACTER_LENGTH()函數傳回字串的長度,以字元為單位。

CHARACTER_LENGTH()是CHAR_LENGTH()函數的同義字。

語法是這樣的:

CHARACTER_LENGTH(str)

其中str是傳回長度的字串。

範例1 -基本用法

下面是一個基本用法的範例:

SELECT CHARACTER_LENGTH('Cat');

結果是這樣的:

+-------------------------+
| CHARACTER_LENGTH('Cat') |
+-------------------------+
|                       3 |
+-------------------------+

例2 -末尾有空格

注意,CHARACTER_LENGTH()在其計算中包含末尾空格(例如字串末尾的空格)。

所以如果我們在前一個範例的最後加上空格:

SELECT CHARACTER_LENGTH('Cat ');

結果:

+--------------------------+
| CHARACTER_LENGTH('Cat ') |
+--------------------------+
|                        4 |
+--------------------------+

但是我們可以使用TRIM()函數或RTRIM()函數來刪除後面的空格:

SELECT 
  CHARACTER_LENGTH(TRIM('Cat ')) AS 'TRIM',
  CHARACTER_LENGTH(RTRIM('Cat ')) AS 'RTRIM';

結果:

+------+-------+
| TRIM | RTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

例3 -前面有空格

同樣的概念也適用於前面空格。你可以使用TRIM或LTRIM:

SELECT 
  CHARACTER_LENGTH(TRIM(' Cat')) AS 'TRIM',
  CHARACTER_LENGTH(LTRIM(' Cat')) AS 'LTRIM';

結果:

+------+-------+
| TRIM | LTRIM |
+------+-------+
|    3 |     3 |
+------+-------+

例4 -資料型別

無論字串儲存為何資料類型,它都將返回相同的結果。這與LENGTH()函數形成對比,如果資料是以Unicode字串儲存的,那麼LENGTH()函數將會傳回雙倍的字元數。

在下面的範例中,ArtistName欄位使用varchar(255):

SELECT CHARACTER_LENGTH(ArtistName) Result
FROM Artists
WHERE ArtistName = 'Lit';

結果:

+--------+
| Result |
+--------+
|      3 |
+--------+

如果我們修改ArtistName欄位來使用Unicode:

ALTER TABLE Artists 
MODIFY COLUMN ArtistName VARCHAR(255) unicode;

並再次執行相同的查詢:

SELECT CHARACTER_LENGTH(ArtistName) 
FROM Artists
WHERE ArtistName = 'Lit';

我們仍然得到相同的結果:

+--------+
| Result |
+--------+
|      3 |
+--------+

但是,如果使用LENGTH()函數,結果將是6。這是因為Unicode字串每個字元儲存2個位元組,LENGTH()函數傳回以位元組為單位測量的長度。

相關推薦:《mysql教學

###

以上是MySQL中CHARACTER_LENGTH()函數的用法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn