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()が格納されるためです。 関数は、バイト単位で測定された長さを返します。