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

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

    MySQLでは、CHAR_LENGTH() 関数は、文字で測定された文字列の長さを返します。 MySQLにはCHARACTER_LENGTH()もあります 、これはCHAR_LENGTH()の同義語です 。

    次に例を示します:

    SELECT CHAR_LENGTH('Lit');
    

    結果は次のとおりです。

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

    トレーリングブランク

    CHAR_LENGTH()に注意してください 計算に末尾の空白(文字列の最後のスペースなど)が含まれます。

    したがって、前の例の最後にスペースを追加すると、次のようになります。

    SELECT CHAR_LENGTH('Lit');
    

    結果は次のとおりです。

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

    ただし、TRIM()を追加することで、その末尾のスペースをいつでも削除できます。 ミックスに機能する:

    SELECT CHAR_LENGTH(TRIM('Lit '));
    

    結果は次のとおりです。

    +---------------------------+
    | CHAR_LENGTH(TRIM('Lit ')) |
    +---------------------------+
    |                         3 |
    +---------------------------+
    

    リーディングブランク

    先頭の空白についても同じです。したがって、 startにスペースを追加すると 代わりに文字列の:

    SELECT CHAR_LENGTH('Lit');
    

    同じ結果が得られます:

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

    データ型

    文字列がどのデータ型として保存されているかは関係ありませんが、同じ結果が返されます。これは、LENGTH()とは対照的です。 関数。データがUnicode文字列として格納されている場合に2倍の文字数を返します。

    次の例では、ArtistName列は varchar(255)を使用しています :

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

    結果は次のとおりです。

    +-------------------------+
    | CHAR_LENGTH(ArtistName) |
    +-------------------------+
    |                       3 |
    +-------------------------+
    

    そして、ArtistNameを変更すると Unicodeを使用する列:

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

    そして、同じクエリをもう一度実行します:

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

    それでも同じ結果が得られます:

    +-------------------------+
    | CHAR_LENGTH(ArtistName) |
    +-------------------------+
    |                       3 |
    +-------------------------+
    

    ただし、LENGTH()を使用した場合 関数の場合、結果は6になります。これは、Unicode文字列が1文字あたり2バイトを格納し、LENGTH()が格納されるためです。 関数は、バイト単位で測定された長さを返します。


    1. MySQLの階層クエリ

    2. スタンドアロンMySQLサーバー

    3. Virtualmin:パスワードを変更した後はこのMySQLデータベースにアクセスできません

    4. ScaleGridDBaaSがCloudExcellenceAwards2018の最終候補になりました