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

mysql中,character_Length()函數(shù)返回字符串的長度,以字符為單位。

CHARACTER_LENGTH()是CHAR_LENGTH()函數(shù)的同義詞。

語法是這樣的:

CHARACTER_LENGTH(str)

其中str是返回長度的字符串。

例1 -基本用法

下面是一個(gè)基本用法的例子:

SELECT?CHARACTER_LENGTH('Cat');

結(jié)果是這樣的:

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

例2 -末尾有空格

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

所以如果我們在前一個(gè)例子的末尾加上空格:

SELECT?CHARACTER_LENGTH('Cat?');

結(jié)果:

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

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

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

結(jié)果:

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

例3 -前面有空格

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

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

結(jié)果:

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

例4 -數(shù)據(jù)類型

無論字符串存儲(chǔ)為什么數(shù)據(jù)類型,它都將返回相同的結(jié)果。這與LENGTH()函數(shù)形成對(duì)比,如果數(shù)據(jù)是以Unicode字符串存儲(chǔ)的,那么LENGTH()函數(shù)將返回雙倍的字符數(shù)。

在下面的例子中,ArtistName列使用varchar(255):

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

結(jié)果:

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

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

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

并再次運(yùn)行相同的查詢:

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

我們?nèi)匀坏玫较嗤慕Y(jié)果:

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

但是,如果使用LENGTH()函數(shù),結(jié)果將是6。這是因?yàn)閁nicode字符串每個(gè)字符存儲(chǔ)2個(gè)字節(jié),LENGTH()函數(shù)返回以字節(jié)為單位測量的長度。

相關(guān)推薦:《mysql教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊6 分享