MySQLにおいて表題の通り。ド忘れしたのでメモしておく。
■ 環境
- MySQL 3.6.5
■ SQL
カラムの型が”varchar“の時に下記のように取得した。
mysql> select length(カラム) from テーブル;
これで取得する対象のカラムに入っているデータが英数字等であれば単純に文字数が取得できる。しかし入っているデータが日本語等の文字であった場合かつテーブルの定義で”utf8“であったりすると、1文字が3byteなので3倍の数値が返ってきた。
ちなみにMySQLでは純粋に文字列数を取得するには”char_length“で返ってくるようだ。
mysql> select char_length(カラム) from テーブル;
こっちだとイメージ通りである。
ちなみに、、自身は”AWS Athena“で同じように”char_length“を使いたかったのだが、そんな関数はないとエラーになったので”length“を使用して実行する事ができた。
mysql> help length
Name: 'LENGTH'
Description:
Syntax:
LENGTH(str)
Returns the length of the string str, measured in bytes. A multi-byte
character counts as multiple bytes. This means that for a string
containing five two-byte characters, LENGTH() returns 10, whereas
CHAR_LENGTH() returns 5.
:
mysql>
mysql> help char_length
Name: 'CHAR_LENGTH'
Description:
Syntax:
CHAR_LENGTH(str)
Returns the length of the string str, measured in characters. A
multi-byte character counts as a single character. This means that for
a string containing five two-byte characters, LENGTH() returns 10,
whereas CHAR_LENGTH() returns 5.
:
mysql>
以上。