MySQLクエリで特定の行を検索する方法|WHERE句を使った条件指定の基本
MySQLで大量のデータが保存されたテーブルから、目的の1行だけを取り出したい場面はよくあります。そんなときに活躍するのがWHERE句です。この記事では、サンプルテーブルを作成しながら、特定の行を検索して表示する方法を初心者向けにわかりやすく解説します。
1. サンプルテーブルを作成する
まず、検索対象となるテーブルを作成しましょう。ここではユーザーIDとユーザー名を持つ「DemoTable」を使用します。
mysql> create table DemoTable
(
UserId int,
UserName varchar(100)
);
Query OK, 0 rows affected (0.66 sec)
2. テーブルにレコードを挿入する
次に、INSERT文を使って複数のレコードを追加します。
mysql> insert into DemoTable values(100,'Chris'); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(101,'Bob'); Query OK, 1 row affected (0.07 sec) mysql> insert into DemoTable values(102,'David'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(103,'Mike'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(104,'Sam'); Query OK, 1 row affected (0.16 sec)
3. 全レコードを確認する
SELECT文を実行して、テーブル内のすべてのデータを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。
+--------+----------+ | UserId | UserName | +--------+----------+ | 100 | Chris | | 101 | Bob | | 102 | David | | 103 | Mike | | 104 | Sam | +--------+----------+ 5 rows in set (0.00 sec)
4. WHERE句で特定の行を検索する
いよいよ本題です。特定の行を見つけて、そのレコードだけを表示するには、WHERE句で条件を指定します。以下の例では、「UserIdが102かつUserNameがDavid」という条件に一致する行を取得しています。
mysql> select *from DemoTable where UserId=102 and UserName='David';
実行結果:
+--------+----------+ | UserId | UserName | +--------+----------+ | 102 | David | +--------+----------+ 1 row in set (0.00 sec)
WHERE句のポイント
- AND演算子:複数の条件をすべて満たす行のみを抽出します(上記の例のようにUserIdとUserNameの両方を指定)。
- OR演算子:いずれか一方の条件でも一致すれば行を抽出したい場合に使用します。
- 文字列の比較:値はシングルクォート(')で囲みます。数値の場合は不要です。
このようにWHERE句を組み合わせることで、主キーだけでなく任意のカラムの値を条件として、柔軟に目的の行を検索できます。条件を絞り込むほど取得件数が減り、パフォーマンス面でも効率的になるため、実務でも頻繁に使われる基本的なテクニックです。
-
MySQLで特定のカラム名を持つテーブルを検索する方法
MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a
-
MySQLでテーブルから特定の行を抽出するクエリの書き方
MySQLでは、WHERE句とORDER BY、LIMITを組み合わせることで、テーブルから条件に合致する特定の行だけを効率的に取得できます。本記事では、実際にサンプルテーブルを作成し、特定の行を抽出するクエリの実行手順をわかりやすく解説します。 1. サンプルテーブルの作成 まず、CREATE TABLE文を使ってサンプル用のテーブルを作成します。ここでは「Section(組)」と「StudentName(生徒名)」という2つのカラムを持つテーブルを用意しました。 mysql> create table DemoTable1972 ( Section char(1),