【MySQL】登録されているデータの最大文字長、最小文字長の調べ方

投稿者: | 2016/01/05

登録されているデータの最大文字長と最小文字長を調べたい場合、
どういうSQLを投げればいいのかを紹介したいと思います。

例として使用するデータ

mysql> select * from onepiece_character;
+----+------------------------------+
| id | name                         |
+----+------------------------------+
|  1 | モンキー・D・ルフィ          |
|  2 | ロロノア・ゾロ               |
|  3 | ウソップ                     |
|  4 | ナミ                         |
|  5 | サンジ                       |
|  6 | チョッパー                   |
|  7 | ニコ・ロビン                 |
|  8 | フランキー                   |
|  9 | ブルック                     |
+----+------------------------------+
9 rows in set (0.00 sec)

CHAR_LENGTH関数

文字列の文字数を取得できます。

mysql> select name, char_length(name) from onepiece_character;
+------------------------------+-------------------+
| name                         | char_length(name) |
+------------------------------+-------------------+
| モンキー・D・ルフィ          |                10 |
| ロロノア・ゾロ               |                 7 |
| ウソップ                     |                 4 |
| ナミ                         |                 2 |
| サンジ                       |                 3 |
| チョッパー                   |                 5 |
| ニコ・ロビン                 |                 6 |
| フランキー                   |                 5 |
| ブルック                     |                 4 |
+------------------------------+-------------------+
9 rows in set (0.00 sec)

MAX関数

最大値を取得できます。

mysql> select max(id) from onepiece_character;
+---------+
| max(id) |
+---------+
|       9 |
+---------+
1 row in set (0.00 sec)

MIN関数

最小値を取得できます。

mysql> select min(id) from onepiece_character;
+---------+
| min(id) |
+---------+
|       1 |
+---------+
1 row in set (0.00 sec)

nameの最大文字長を調べます

上記で紹介したCHAR_LENGTH関数とMAX関数を組み合わせます。

mysql> select max(char_length(name)) from onepiece_character;
+------------------------+
| max(char_length(name)) |
+------------------------+
|                     10 |
+------------------------+
1 row in set (0.00 sec)

nameの最小文字長を調べます

上記で紹介したCHAR_LENGTH関数とMIN関数を組み合わせます。

mysql> select min(char_length(name)) from onepiece_character;
+------------------------+
| min(char_length(name)) |
+------------------------+
|                      2 |
+------------------------+
1 row in set (0.00 sec)

以上です。

コメントを残す

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