MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLで電話番号から市外局番を抽出する方法【LEFT()関数の使い方】

MySQLで電話番号から市外局番を抽出する方法

電話番号のリストから市外局番(先頭の数桁)だけを抜き出したいケースはよくあります。MySQLではLEFT()関数を使うことで、文字列の先頭から指定した文字数分だけ簡単に取り出すことができます。

LEFT()関数は、第1引数に対象のカラム名、第2引数に抽出する文字数を指定します。さらにDISTINCTキーワードを組み合わせれば、重複しない市外局番の一覧を取得することも可能です。

実際の手順を順番に見ていきましょう。

1. サンプルテーブルを作成する

まず、電話番号を格納するためのテーブルを作成します。

mysql> create table DemoTable
-> (
-> AreaCodes varchar(100)
-> );
Query OK, 0 rows affected (0.62 sec)

2. レコードを挿入する

INSERT文を使って、いくつかの電話番号を登録していきます。

mysql> insert into DemoTable values('90387568976');
Query OK, 1 row affected (0.20 sec)

mysql> insert into DemoTable values('90389097878');
Query OK, 1 row affected (0.23 sec)

mysql> insert into DemoTable values('56789008799');
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable values('45679008571');
Query OK, 1 row affected (0.23 sec)

mysql> insert into DemoTable values('45679008536');
Query OK, 1 row affected (0.12 sec)

3. テーブルの内容を確認する

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

実行すると、次のような出力が得られます。

+-------------+
| AreaCodes |
+-------------+
| 90387568976 |
| 90389097878 |
| 56789008799 |
| 45679008571 |
| 45679008536 |
+-------------+
5 rows in set (0.00 sec)

4. 市外局番を抽出するクエリ

それでは本題のクエリです。LEFT()関数で先頭4桁を抽出し、DISTINCTで重複を除外しています。

mysql> select distinct LEFT(AreaCodes,4) from DemoTable;

実行結果は以下のとおりです。

+-------------------+
| left(AreaCodes,4) |
+-------------------+
| 9038 |
| 5678 |
| 4567 |
+-------------------+
3 rows in set (0.13 sec)

「9038」で始まる電話番号は2件登録されていますが、DISTINCTによって重複が排除され、一意な値だけが表示されているのがわかります。

まとめ

LEFT()関数を使えば、電話番号から市外局番など先頭部分の文字列を簡単に抽出できます。抽出する桁数は第2引数で自由に変更できるので、用途に応じて調整してください。なお、先頭以外の任意の位置から文字列を取り出したい場合は、SUBSTRING()関数を使うと同様の処理が可能です。

  1. MySQLで文字列の末尾から指定した文字数を切り取る方法

    MySQLで文字列の末尾から指定文字数を削除する方法 MySQLでは、substring()関数とlength()関数を組み合わせることで、文字列の末尾(最後)から指定した文字数を簡単に切り取ることができます。 基本的な考え方は、「文字列全体の長さから削除したい文字数を引いた値」をsubstring()の第3引数に指定するというものです。以下、具体的な手順をサンプルコードとともに見ていきましょう。 1. サンプルテーブルの作成 まず、テスト用のテーブルを作成します。 mysql> create table DemoTable1329     -&

  2. MySQLで文字列から日付を抽出する方法|SUBSTRING_INDEX関数の実践的な使い方

    MySQLで文字列から日付を抽出するには?MySQLで文字列の中から日付部分だけを取り出したい場合、SUBSTRING_INDEX() 関数を使うのが便利です。この関数は、指定した区切り文字を基準に文字列を分割し、必要な部分を取得できます。ここでは、実際にテーブルを作成し、文章の中に含まれる日付(例:12/31/2018)を抽出する手順を解説します。1. サンプルテーブルを作成するまず、文字列を格納するためのテーブルを作成します。mysql> create table DemoTable -> ( -> Title text -> );Query OK