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文字列として格納されている場合に2倍の文字数を返します。
次の例では、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文字列が1文字あたり2バイトを格納し、LENGTH()
が格納されるためです。 関数は、バイト単位で測定された長さを返します。