MySQLで最初の文字を使って列の値をフィルタリングする方法(LEFT関数の使い方)
MySQLで先頭の文字による絞り込みを実現するには
MySQLでは、LEFT()関数を使うことで、列の値の先頭文字に基づいてレコードを簡単にフィルタリングできます。LEFT()関数は、文字列の左端から指定した数の文字を取り出す関数です。
この記事では、実際にテーブルを作成し、社員名の頭文字でデータを絞り込む手順を順番に解説します。
1. サンプルテーブルの作成
まず、以下のようにテーブルを作成します。
mysql> create table DemoTable1428
-> (
-> EmployeeId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> EmployeeName varchar(20)
-> );
Query OK, 0 rows affected (1.05 sec)
AUTO_INCREMENT属性を持つ「EmployeeId」を主キーとし、社員名を格納する「EmployeeName」カラムを定義しています。
2. レコードの挿入
次に、INSERT文を使ってテーブルにデータを挿入します。
mysql> insert into DemoTable1428(EmployeeName) values('Chris Brown');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1428(EmployeeName) values('Bob Brown');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable1428(EmployeeName) values('John Smith');
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable1428(EmployeeName) values('David Miller');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1428(EmployeeName) values('John Doe');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable1428(EmployeeName) values('Carol Johnson');
Query OK, 1 row affected (0.16 sec)3. テーブル内の全レコードを表示
SELECT文でテーブルの中身を確認してみましょう。
mysql> select * from DemoTable1428;
上記のクエリを実行すると、次のような結果が得られます。
+------------+---------------+
| EmployeeId | EmployeeName |
+------------+---------------+
| 1 | Chris Brown |
| 2 | Bob Brown |
| 3 | John Smith |
| 4 | David Miller |
| 5 | John Doe |
| 6 | Carol Johnson |
+------------+---------------+
6 rows in set (0.00 sec)
4. 先頭の文字でフィルタリングするクエリ
ここからが本題です。WHERE句の中でLEFT()関数を使い、名前の先頭文字が「J」のレコードだけを抽出するクエリは以下の通りです。
mysql> select * from DemoTable1428 where left(EmployeeName,1)='J';
実行結果は次のようになります。
+------------+--------------+
| EmployeeId | EmployeeName |
+------------+--------------+
| 3 | John Smith |
| 5 | John Doe |
+------------+--------------+
2 rows in set (0.00 sec)
このように、「John Smith」と「John Doe」のように、先頭文字が「J」であるレコードのみが取得できました。
補足:LIKE演算子を使った代替方法
同じ結果は、LIKE演算子とワイルドカードを使っても得られます。
mysql> select * from DemoTable1428 where EmployeeName like 'J%';
「J%」は「Jで始まる任意の文字列」を意味します。ただし、先頭から指定文字数を厳密に比較したい場合や、複数文字を扱いたい場合は、LEFT()関数の方が意図が明確になり便利です。たとえば「left(EmployeeName, 2) = 'Jo'」とすれば、先頭2文字での絞り込みも簡単に行えます。
-
MySQLで列の最大値を取得する方法をわかりやすく解説
MySQLで特定の列の最大値を取得するには、MAX(columnName)関数を使用します。本記事では、その基本的な使い方に加えて、データベースやテーブルの設計に関する前提知識もあわせて解説します。MySQLのデータベースとテーブルの基礎MySQLをインストールする前に、まず使用するバージョンと配布形式(バイナリファイルか、ソースファイルからビルドするか)を決定することが重要です。新しく作成したばかりのデータベースには、当然ながらテーブルはまだ存在しません。データベース設計において最も重要なのは、以下の要素を決めることです。データベース全体の構造必要となるテーブルの一覧各テーブルに含まれる列(
-
MySQLで列から最大値を取得する方法
MySQLで列の最大値を取得するには?MySQLのテーブルから特定の列の最大値を取得するには、ORDER BY句とLIMIT句を組み合わせる方法が便利です。ここでは、実際にテーブルを作成し、データを挿入して、最大値を取得する手順を順番に解説します。1. テーブルを作成するまず、以下のコマンドでサンプル用のテーブルを作成します。mysql> create table DemoTable -> ( -> Value int -> ); Query OK, 0 rows affected (0.63 sec)2. レコードを挿入する次に、INSERTコ