[MySQL]文字列の長さを求める(CHAR_LENGTH)

MySQLで文字列の長さを求める関数「CHAR_LENGTH」について説明します。

前提条件

  • Mysql:5.6

CHAR_LENGTH関数とは

引数の文字数を返します。

https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_char-length

使い方

mysql> SELECT CHAR_LENGTH('文字列の長さを求める');
+-----------------------------------------------+
| CHAR_LENGTH('文字列の長さを求める')           |
+-----------------------------------------------+
|                                            10 |
+-----------------------------------------------+
1 row in set (0.00 sec)

ちなみに「CHARACTER_LENGTH関数」を使用しても同じ結果になります。

mysql> SELECT CHARACTER_LENGTH('文字列の長さを求める');
+----------------------------------------------------+
| CHARACTER_LENGTH('文字列の長さを求める')           |
+----------------------------------------------------+
|                                                 10 |
+----------------------------------------------------+
1 row in set (0.00 sec)

数値の長さ(桁数)も求めることができます。

mysql> SELECT CHARACTER_LENGTH(100);
+-----------------------+
| CHARACTER_LENGTH(100) |
+-----------------------+
|                     3 |
+-----------------------+
1 row in set (0.00 sec)

LENGTH関数との違い

似たような関数に「LENGTH関数」がありますが、これは文字列の長さをバイト単位で返す関数になります。

https://dev.mysql.com/doc/refman/5.6/ja/string-functions.html#function_length

下記のように文字列の長さではなくバイト数を返します。

mysql> SELECT LENGTH('文字列の長さを求める');
+------------------------------------------+
| LENGTH('文字列の長さを求める')           |
+------------------------------------------+
|                                       30 |
+------------------------------------------+
1 row in set (0.00 sec)

最後に

MySQLで文字列の長さを求める場合、文字列長なのかバイト数なのかをしっかり確認してからそれぞれに対応した関数を実行するように気を付けたいですね。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です