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件のレコードのみが抽出されていることがわかります。この手法は、イニシャルの一致を確認したい場合や、データクレンジングの際の重複チェックなどにも応用できます。
-
【MySQL】日付レコードから曜日を減算し、曜日名とともに結果を表示する方法
はじめにMySQLで保存された日付レコードから、その週の開始日(月曜日)を計算して減算し、曜日名とともに結果を表示したい場合があります。このような処理には DATE_FORMAT() 関数を使用します。SUBDATE() と WEEKDAY() を組み合わせることで、各日付が属する週の月曜日の日付を「Mon 19 Oct」のような形式で取得できます。以下、具体的な手順をサンプルコードとともに解説します。1. テーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable1820 ( AdmissionDate
-
MySQLで列の値から先頭の1文字を取り出し、別の列に挿入する方法
はじめにMySQLである列(カラム)の値から先頭の1文字を取り出し、それを別の列に格納したい場合があります。このようなときに便利なのが LEFT() 関数です。LEFT() 関数は、文字列の左端から指定した文字数だけを抽出することができます。ここでは、実際にテーブルを作成しながら、その手順を順番に解説していきます。1. テーブルを作成するまず、サンプル用のテーブルを作成しましょう。ここでは「FirstLetter」(先頭文字を格納する列)と「Title」(元となる文字列の列)の2つの列を持つテーブルを定義します。mysql> create table DemoTable2036