広告

【MySQL】WHERE・AND・ORを使ったデータ検索の方法(phpMyAdmin)

2019年9月13日

MySQLでWHERE句とANDを使って、データを検索する方法を簡単に記してます。

【MySQL】WHERE・AND・ORを使ったデータ検索のGIF

MySQLでWHERE・ANDの記述方法

MySQLで狙ったカラム(列)の指定した値を抽出するには、ANDを使って以下の記述方法で取得できる↓

SELECT * FROM テーブル名 WHERE 列名1>=100 AND 列名1<200;

BETWEENを使うと、(記述するカラムの名前が減らせて)もっと簡単に書ける↓

SELECT * FROM テーブル名 WHERE 列名1 BETWEEN 100 AND 200;

ORを使うと、複数の条件で抽出するデータの値を指定できる↓

SELECT * FROM テーブル名 WHERE 列名1=100 OR 列名1=1000;

WHERE・ANDで条件を絞ったデータを取得

例として、以下「部品在庫」テーブルを使ってデータ抽出してみます。

部品在庫のテーブル

挿入したデータ↓(LEFT JOINの記事で使ったのと同じ)

LEFT JOIN
MySQL-left-right-join
【MySQL】LEFT JOINとRIGHT JOINを使って全てのデータを表示する

MySQLでLEFT(RIGHT)JOINを使って、NULL値であってもデータを取得・表示する方法のメモです。 補足 G ...

続きを見る

INSERT INTO 部品在庫 SET 部品名='電解コンデンサ',`parts_id`=1,COUNT=300;
INSERT INTO 部品在庫 SET 部品名='チップ抵抗',`parts_id`=2,COUNT=30000;
INSERT INTO 部品在庫 SET 部品名='トランジスタ',`parts_id`=3,COUNT=100;
INSERT INTO 部品在庫 SET 部品名='レギュレーター',`parts_id`=4,COUNT=50;
INSERT INTO 部品在庫 SET 部品名='LED',`parts_id`=5,COUNT=6000;
INSERT INTO 部品在庫 SET 部品名='スイッチ',`parts_id`=6,COUNT=3000;
INSERT INTO 部品在庫 SET 部品名='コネクタ',`parts_id`=7,COUNT=300;
部品在庫(テーブル)のCOUNT(列)で、100以上500未満のデータを抽出してみました。

ANDと比較演算子だけで抽出する場合

実行するSQL文↓

SELECT * FROM 部品在庫 WHERE COUNT>=100 AND COUNT<500;

ANDと比較演算子だけの実行結果↓
部品在庫(テーブル)のCOUNT(列)で、100以上500未満のデータを抽出

BETWEENを使って抽出する場合

BETWEENのSQL文↓

SELECT * FROM 部品在庫 WHERE COUNT BETWEEN 100 AND 500;

BETWEEN使った場合の実行結果↓

BETWEENを使って抽出した結果
取得されたデータは全く同じだけど、BETWEENのほうが記述が少なくて済みますね。

OYAKUN
OYAKUN
とはいっても「列名 > 100 AND 列名 <500」もオーソドックに書きやすいのかも...
注意!
BETWEEN 10 AND 20の場合、「10以上20以下」と指定される。20未満を指定するなら「10 AND 19」と表すこと。

ORを使って複数条件を指定する場合

ORを使ったSQL文↓

SELECT * FROM 部品在庫 WHERE COUNT=100 OR COUNT=3000;

ORを使ったSQLの実行結果↓
ORを使って複数条件を指定した結果

ORは直感的に使えて分かりやすいっすね。実はもうちょっと簡単に書けます。

INを使って複数条件を指定する場合

同じカラムに対して複数条件を指定する場合、「OR」を使わずに「IN」を使って以下のようにも書けます

SELECT * WHERE 部品在庫 WHERE 列名 IN(検索データ1,検索データ2);

INを使ったSQL文↓

SELECT * FROM 部品在庫 WHERE COUNT in(100,3000);

INを入れたSQLの実行結果↓
INを使って複数条件を指定した結果

同じカラムの中で、別のデータを抽出する場合はこちらの方がスマートだと思います。

OYAKUN
OYAKUN
覚えてるかは別として、スマートな方をなるべく使っていきたいところですね!

まとめ

MySQLでWHERE・AND(OR)を使ってデータを検索する方法でした。

すみません、あんまり多くかけてなくまたそれぞれ別記事で詳しく紹介できればなと。

少しずつですがDBを触れてきてて、なんとなく嬉しい今です。調子に乗らず、がんばります。

OYAKUN
OYAKUN
次回記事
mysql-limit-howto
【MySQL】LIMIT句の使い方。データ取得の上限を指定する方法

MySQLでLIMIT句を使ってデータ取得の上限を指定する方法を記しています。 補足 WHERE句とAND・ORを使っ ...

続きを見る

関連記事:【MySQL】DISTINCTで重複したデータを除外した結果を取得する方法
関連記事:【MySQL】LEFT JOINとRIGHT JOINを使って全てのデータを表示する
関連記事:【MySQL】GROUP BYで商品ごとの合計を算出する(phpMyAdmin)