sql >> データベース >  >> RDS >> Mysql

MySQLのLENGTH()とは何ですか?

    MySQLの多くの関数の1つは、LENGTH()です。 文字列の長さをバイト単位で返す関数。

    例:

    SELECT LENGTH('Lit');
    

    結果:

    +---------------+
    | LENGTH('Lit') |
    +---------------+
    |             3 |
    +---------------+
    

    これは簡単な例であり、結果はCHAR_LENGTH()を使用した場合と同じです。 働き。ただし、LENGTH() 関数は、データ型に応じて異なる結果を返す可能性があります。

    データ型

    データベースにクエリを実行すると、LENGTH() 関数は、データ型に応じて異なる結果を返す可能性があります。 Unicode文字列は2倍のバイト数を返します。 UTF-8文字列は異なる場合があります。

    UTF-8の使用例は次のとおりです:

    SELECT LENGTH(_utf8 '€');
    

    結果:

    +---------------------+
    | LENGTH(_utf8 '€')   |
    +---------------------+
    |                   3 |
    +---------------------+
    

    この場合、ユーロ記号は3バイトを使用します。

    次の例では、データベースにクエリを実行します。この場合、ArtistName 列はvarchar(255)を使用します データ型:

    SELECT LENGTH(ArtistName) 
    FROM Artists
    WHERE ArtistName = 'Lit';
    

    したがって、結果は次のようになります。

    +--------------------+
    | LENGTH(ArtistName) |
    +--------------------+
    |                  3 |
    +--------------------+
    

    ただし、列をucs2に変更すると 、各文字は2バイトのUnicodeコードで表されるため、結果は異なります。

    実例を示すために、次のようにテーブルを変更できます。

    SELECT LENGTH(ArtistName) 
    ALTER TABLE Artists 
    MODIFY COLUMN ArtistName VARCHAR(255) CHARSET ucs2;
    

    もう一度クエリすると:

    SELECT LENGTH(ArtistName) 
    FROM Artists
    WHERE ArtistName = 'Lit';
    

    結果:

    +--------------------+
    | LENGTH(ArtistName) |
    +--------------------+
    |                  6 |
    +--------------------+
    

    トレーリングブランク

    LENGTH() 関数は、末尾の空白(文字列の最後のスペースなど)をカウントします。したがって、最初の例の最後にスペースを追加すると、次の結果が得られます。

    SELECT LENGTH('Lit');
    

    結果:

    +----------------+
    | LENGTH('Lit ') |
    +----------------+
    |              4 |
    +----------------+
    

    リーディングブランク

    先頭の空白(文字列の先頭のスペースなど)でも同じ結果が得られます:

    SELECT LENGTH('Lit');
    

    結果:

    +----------------+
    | LENGTH('Lit ') |
    +----------------+
    |              4 |
    +----------------+
    

    Transact-SQL(SQL Server、Azureの場合)にも同様の機能がありますが、T-SQLではDATALENGTH()と呼ばれます。 。


    1. SSRS2014レポートのデプロイの問題

    2. PHP、ORM、MSSQL、Unicode、これらを一緒に機能させることは可能ですか?

    3. pgBadgerを使用したPostgreSQLログ分析

    4. MySQLで先頭と末尾の空白を削除する方法