MySQLで行選択と列選択を組み合わせる方法|WHERE句の使い方を実例付きで解説
MySQLでは、SELECT文による列の選択とWHERE句による行の絞り込みを組み合わせることで、テーブルから必要なデータだけを効率的に取り出すことができます。
サンプルテーブルの確認
まず、例として使用する「Student」テーブルの中身を見てみましょう。
mysql> Select * from Student; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Gaurav | 100 | B.tech | | Aarav | 150 | M.SC | | Aryan | 165 | M.tech | +--------+--------+--------+ 3 rows in set (0.00 sec)
このテーブルには3件の学生データが登録されています。ここから、特定の列だけを取得しつつ、条件に合致する行だけを抽出してみます。
WHERE句で行選択と列選択を組み合わせる
次のクエリでは、取得する列として「Name」「RollNo」「Grade」を指定し、さらにWHERE句で Grade が 'M.Sc' または 'B.Tech' である行だけを絞り込んでいます。
mysql> Select Name, RollNo, Grade from Student where Grade='M.Sc' or Grade='B.Tech'; +--------+--------+--------+ | Name | RollNo | Grade | +--------+--------+--------+ | Gaurav | 100 | B.tech | | Aarav | 150 | M.SC | +--------+--------+--------+ 2 rows in set (0.00 sec)
実行結果を見ると、元の3行のうち条件に合う2行だけが返され、かつ指定した3つの列のみが表示されていることがわかります。
ポイントまとめ
- 列の選択: SELECTの直後に、取得したい列名をカンマ区切りで指定します(すべての列を取得する場合は * を使用)。
- 行の選択: WHERE句に条件を記述することで、条件に一致する行だけを抽出できます。
- 複数条件: OR演算子やAND演算子を組み合わせることで、より柔軟な条件指定が可能です。
このように、SELECT文とWHERE句を組み合わせることは、MySQLにおけるデータ検索の基本であり、大量のデータから必要な情報だけを素早く取得するために非常に重要なテクニックです。
-
MySQLでNULLを含む列の乗算を処理する方法|COALESCE関数の使い方
MySQLでNULLを含む列の乗算を正しく計算するにはMySQLでは、数値型の列にNULLが含まれている場合、そのまま乗算すると結果もNULLになってしまいます。このような問題を回避するには、COALESCE() 関数を利用するのが効果的です。COALESCE()は、引数の中から最初に見つかった非NULLの値を返す関数で、NULLを別の値(ここでは「1」)に置き換えて計算できます。以下、実際の手順を見ていきましょう。1. サンプルテーブルを作成するまず、商品点数と金額を格納するテーブルを作成します。mysql> create table DemoTable1842 &nbs
-
MySQLで複数の行レコードを1行にまとめる方法|CASE WHENを使ったクロス集計の基本
MySQLでは、複数の行に分かれているレコードを、条件ごとに1行へまとめて表示したいケースがあります。たとえば「同じ会社の従業員データを国別に横並びで表示したい」場合などです。こうした処理には CASE WHEN を使うのが定番の方法です。本記事では、実際にテーブルを作成し、複数の行レコードを1行に結合する手順をサンプルSQL付きで解説します。1. サンプルテーブルを作成するまずは、会社名・従業員名・国名を持つテーブルを作成します。mysql> create table demo68 -> ( -> id int not null auto_increment primary