MySQLで電話番号の列に国コードを追加する方法
電話番号に国コードを設定するということは、既存の番号の先頭にコードを連結するということです。MySQLではCONCAT()関数を使うことで簡単に実現できます。
この記事では、サンプルテーブルを作成し、UPDATE文とCONCAT()関数を組み合わせて、すべての電話番号に国コード「+91」を一括で追加する手順を解説します。
1. サンプルテーブルを作成する
まず、電話番号を格納するテーブルを作成します。電話番号は「+」などの記号を含む可能性があるため、VARCHAR型を使用します。
mysql> create table DemoTable769 (MobileNumber varchar(100)); Query OK, 0 rows affected (0.54 sec)
2. テーブルにレコードを挿入する
次に、INSERTコマンドを使っていくつかの電話番号を登録します。
mysql> insert into DemoTable769 values('8799432434');
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable769 values('9899996778');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable769 values('7890908989');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable769 values('9090898987');
Query OK, 1 row affected (0.20 sec)3. 登録されたデータを確認する
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable769;
実行すると次のような結果が得られます。
+--------------+ | MobileNumber | +--------------+ | 8799432434 | | 9899996778 | | 7890908989 | | 9090898987 | +--------------+ 4 rows in set (0.00 sec)
4. CONCAT()関数で国コードを追加する
ここからが本題です。UPDATE文とCONCAT()関数を組み合わせることで、列のすべての値の先頭に国コードを連結できます。
mysql> update DemoTable769
set MobileNumber=concat('+91',MobileNumber);
Query OK, 4 rows affected (0.20 sec)
Rows matched: 4 Changed: 4 Warnings: 0このクエリでは、各電話番号の前に「+91」を付けた文字列でMobileNumber列を上書きしています。
5. 更新結果を確認する
再度SELECT文を実行して、更新後のデータを確認しましょう。
mysql> select *from DemoTable769;
実行すると、すべての電話番号の先頭に国コードが付与されていることがわかります。
+---------------+ | MobileNumber | +---------------+ | +918799432434 | | +919899996778 | | +917890908989 | | +919090898987 | +---------------+ 4 rows in set (0.00 sec)
まとめ
このように、MySQLではCONCAT()関数とUPDATE文を組み合わせるだけで、既存の電話番号データに対して国コードを一括で追加できます。なお、日本の場合は「+81」、アメリカの場合は「+1」のように、対象の国に合わせて連結する文字列を変更してください。
-
MySQLで郵便番号の先頭に0を埋める方法|LPAD()関数の使い方
MySQLでは、LPAD()関数を使うことで、文字列の左側(先頭)に任意の文字を埋め込むことができます。これを利用すると、INT型などで保存された郵便番号の先頭に「0」を付けて桁数を揃える(ゼロパディング)処理が簡単に行えます。例えば、5桁の郵便番号「23455」を6桁表記の「023455」に変換したいようなケースで役立ちます。LPAD()関数の基本構文SELECT LPAD(カラム名, 桁数, 0) AS 別名 FROM テーブル名;第2引数に最終的な文字列の長さを、第3引数に埋め込みたい文字を指定します。足りない分だけ先頭に指定文字が繰り返し追加されます。サンプルテーブルを作成して確認して
-
PHPとMySQLでブール値を扱うには?BOOL・BOOLEAN・TINYINT(1)の違いと使い方
本記事では、MySQL 8.0.12を使用して、ブール(Boolean)値の正しい取り扱い方を解説します。まず、使用しているMySQLのバージョンを確認しておきましょう。 mysql> select version(); +-----------+ | version() | +-----------+ | 8.0.12 | +-----------+ 1 row in set (0.00 sec) MySQLにおけるブール値の基本:BOOL・BOOLEAN・TINYINT(1) MySQLでブール値を扱うには、BOOL、BOOLEAN、またはTINYINT(1)のいずれかを使用