在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中文網其他相關文章!