忍者ブログ

エンジニア初心者の備忘録

エンジニア初心者が躓いたことハマったことを公開します!

文字数をカウントする~エンジニア初心者のためのMySQLコマンド~

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

文字数をカウントする~エンジニア初心者のためのMySQLコマンド~

今回は、WHERE句の検索条件として既存のカラムの文字数を使用したいときに便利な文字列演算子であるCHAR_LENGTH()についてまとめます。


それでは、CHAR_LENGTH()について確認したいと思います。

CHAR_LENGTH(str)
文字で測定された文字列 str の長さを返します。マルチバイト文字は、単一の文字としてカウントされます。つまり、5 つの 2 バイト文字を含む文字列では、LENGTH() は 10 を返し、CHAR_LENGTH() は 5 を返します。
『MySQL 5.6 リファレンスマニュアル / 関数と演算子 / 文字列関数』

なお、CHAR_LENGTH()のシノニムとして、CHARACTER_LENGTH(str)があります。

CHARACTER_LENGTH(str)
CHARACTER_LENGTH() は CHAR_LENGTH() のシノニムです。
『MySQL 5.6 リファレンスマニュアル / 関数と演算子 / 文字列関数』


それでは、下記にて確認してみます。

mysql> create database hoge;
Query OK, 1 row affected (0.04 sec)

mysql> use hoge;
Database changed

mysql> show tables;
Empty set (0.00 sec)
mysql> create table hoge(id int, name varchar(10));
Query OK, 0 rows affected (0.07 sec)

mysql> show tables;
+----------------+
| Tables_in_hoge |
+----------------+
| hoge           |
+----------------+
1 row in set (0.00 sec)

mysql> desc hoge;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

mysql> insert into hoge(id, name) values(1, '株式会社プラムザ');
Query OK, 1 row affected (0.00 sec)

mysql> select * from hoge;
+------+--------------------------+
| id   | name                     |
+------+--------------------------+
|    1 | 株式会社プラムザ         |
+------+--------------------------+
1 row in set (0.00 sec)

mysql> select char_length('株式会社プラムザ');
+-----------------------------------------+
| char_length('株式会社プラムザ')         |
+-----------------------------------------+
|                                       8 |
+-----------------------------------------+
1 row in set (0.00 sec)

mysql> select * from hoge where char_length(name) = 8;
+------+--------------------------+
| id   | name                     |
+------+--------------------------+
|    1 | 株式会社プラムザ         |
+------+--------------------------+
1 row in set (0.00 sec)


以上です!



【関連チケット】
『MySQL:条件式に文字数を指定する方法』
『文字列の文字数を調べる (CHAR_LENGTH)』




PR

コメント

プロフィール

HN:
プラムザ 太郎
性別:
非公開

P R