MySQL

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

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

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

 補足
DISTINCTを使った重複値の除外方法も知っておくと捗ります!

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の記事で使ったのと同じ)

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
とはいっても「列名 > 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
覚えてるかは別だけど...

まとめ

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

 

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

 

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

 

oyakun
次記事ではテーブルを表示する際にレコード数を制限する方法について紹介します!

>【MySQL】DISTINCTで重複したデータを除外した結果を取得する方法

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

>【MySQL】GROUP BYで商品ごとの合計を算出する(phpMyAdmin)

  • この記事を書いた人
  • 最新記事
oyakun

oyakun

30代半ば♂妻・子3人の5人で日々激戦中。Google app script&VBA初心者が自分の備忘録を兼ねて「スプレッドシート、Excel、WordPress、plugin」の設定等、主にブログやアフィリエイト周辺のtipsを背伸びしながらご紹介しています。

Copyright© OYAKUDACHI.XYZ , 2019 All Rights Reserved.