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

MySQLで郵便番号の最初の部分を取得する方法

SUBSTRING()を使って郵便番号の最初の部分を抽出する

郵便番号(PostCode)から最初の部分を取得するには、SUBSTRING()関数を使用します。まずは、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable858(PostCode varchar(100));
Query OK, 0 rows affected (0.56 sec)

レコードの挿入

INSERTコマンドを使って、テーブルにいくつかのレコードを挿入します。

mysql> insert into DemoTable858 values('US90 456');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable858 values('UK1 EN789343');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable858 values('ENG78884 736454654');
Query OK, 1 row affected (0.12 sec)

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

SELECT文を使用して、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable858;

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

+--------------------+
| PostCode           |
+--------------------+
| US90 456           |
| UK1 EN789343       |
| ENG78884 736454654 |
+--------------------+
3 rows in set (0.00 sec)

郵便番号の最初の部分を取得するクエリ

以下が、PostCodeから最初の部分(空白の前の文字列)を抽出するクエリです。LOCATE()関数で空白の位置を特定し、SUBSTRING()関数で先頭からその位置の1文字手前までの文字列を取り出しています。

mysql> select substring(PostCode, 1, locate (' ', PostCode) - 1) AS GetFirstPart from DemoTable858;

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

+--------------+
| GetFirstPart |
+--------------+
| US90         |
| UK1          |
| ENG78884     |
+--------------+
3 rows in set (0.00 sec)

このように、SUBSTRING()とLOCATE()を組み合わせることで、区切り文字(この場合は空白)の前にある文字列を簡単に抽出できます。郵便番号やコード番号など、特定の形式で区切られたデータを処理する際に非常に便利なテクニックです。

  1. MySQLのLEFT関数で文字列の左側から指定した文字数を取得する方法

    MySQLのLEFT関数で文字列の左側から一部を取得する文字列の先頭(左側)から指定した文字数だけ抽出したい場合には、MySQLのLEFT()関数を使用します。書式は「LEFT(カラム名, 取得する文字数)」となり、第1引数に対象の文字列、第2引数に抽出する文字数を指定します。それでは、実際にテーブルを作成して動作を確認してみましょう。1. テーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable    -> (    -> Title

  2. MySQLで最後の30行を取得する方法(ORDER BY DESCとLIMITの使い方)

    MySQLでテーブルの最後の30行を取得したい場合は、ORDER BY DESC(降順ソート)とLIMIT 30を組み合わせるのが基本です。降順に並べ替えることで、最新(またはIDが大きい)レコードが先頭に来るため、先頭から30件を取り出すことで実質的に「最後の30行」が取得できます。基本構文SELECT * FROM テーブル名 ORDER BY カラム名 DESC LIMIT 30;それでは、実際にサンプルテーブルを作成して動作を確認していきましょう。1. テーブルの作成まず、以下のようにテーブルを作成します。mysql> create table DemoTable1567