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

MySQL Logo プログラミング
MySQL Logo

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

前提条件

  • MySQL : 5.6

CHAR_LENGTH 関数とは

引数に設定した値の文字数を返します。

MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.8 文字列関数および演算子

使い方

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 関数」がありますが、これは文字列の長さをバイト単位で返す関数になります。

MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.8 文字列関数および演算子

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

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

最後に

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

コメント

モバイルバージョンを終了
タイトルとURLをコピーしました