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

MySQLで名前と名字が同じ文字で始まるレコードを抽出する方法

LEFT()関数を使って頭文字を比較する

MySQLで名(FirstName)と姓(LastName)の先頭の文字が同じレコードを抽出したい場合は、LEFT()関数を使用します。さらに、大文字・小文字の違いを無視して比較したい場合は、UPPER()関数と組み合わせることで、より確実に判定できます。

サンプルテーブルの作成

まず、以下のようにテーブルを作成します。

mysql> create table DemoTable789 (
   FirstName varchar(100),
   LastName varchar(100)
);
Query OK, 0 rows affected (0.78 sec)

データの挿入

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

mysql> insert into DemoTable789 values('Adam','Smith');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable789 values('Tom','Taylor');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable789 values('Bob','Brown');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable789 values('David','Miller');
Query OK, 1 row affected (0.22 sec)

登録済みレコードの確認

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

mysql> select *from DemoTable789;

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

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Adam      | Smith    |
| Tom       | Taylor   |
| Bob       | Brown    |
| David     | Miller   |
+-----------+----------+
4 rows in set (0.00 sec)

頭文字が同じレコードを抽出するクエリ

名前と姓の先頭文字が一致するレコードだけを表示するには、次のようなクエリを実行します。

mysql> select *from DemoTable789 where upper(left(FirstName,1))=upper(left(LastName,1));

このクエリでは、LEFT(FirstName,1)で名前の最初の1文字を取り出し、UPPER()で大文字に変換してから比較しています。そのため、大文字と小文字が混在しているデータでも正しく判定できるのがポイントです。

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

+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| Tom       | Taylor   |
| Bob       | Brown    |
+-----------+----------+
2 rows in set (0.00 sec)

結果を見ると、「Tom & Taylor」「Bob & Brown」のように、名前と姓が同じ文字で始まる2件のレコードのみが抽出されていることがわかります。この手法は、イニシャルの一致を確認したい場合や、データクレンジングの際の重複チェックなどにも応用できます。

  1. 【MySQL】日付レコードから曜日を減算し、曜日名とともに結果を表示する方法

    はじめにMySQLで保存された日付レコードから、その週の開始日(月曜日)を計算して減算し、曜日名とともに結果を表示したい場合があります。このような処理には DATE_FORMAT() 関数を使用します。SUBDATE() と WEEKDAY() を組み合わせることで、各日付が属する週の月曜日の日付を「Mon 19 Oct」のような形式で取得できます。以下、具体的な手順をサンプルコードとともに解説します。1. テーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable1820 ( AdmissionDate

  2. MySQLで列の値から先頭の1文字を取り出し、別の列に挿入する方法

    はじめにMySQLである列(カラム)の値から先頭の1文字を取り出し、それを別の列に格納したい場合があります。このようなときに便利なのが LEFT() 関数です。LEFT() 関数は、文字列の左端から指定した文字数だけを抽出することができます。ここでは、実際にテーブルを作成しながら、その手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。ここでは「FirstLetter」(先頭文字を格納する列)と「Title」(元となる文字列の列)の2つの列を持つテーブルを定義します。mysql> create table DemoTable2036