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 - データ型
文字列のデータ型は関係ありません。に保存されている場合、すべて同じ結果が返されます。これは、データが Unicode 文字列として保存されている場合に 2 倍の文字数を返す LENGTH() 関数とは対照的です。
以下の例では、ArtistName 列は varchar(255):
SELECT CHARACTER_LENGTH(ArtistName) Result FROM Artists WHERE ArtistName = 'Lit';
結果:
+--------+ | Result | +--------+ | 3 | +--------+
Unicode を使用するように ArtistName 列を変更すると、次のようになります。
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() 関数はバイト単位で測定された長さを返すためです。
関連する推奨事項: 「mysql チュートリアル 」
以上がMySQL の CHARACTER_LENGTH() 関数の使用法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。