MySQL 比較演算子と使用参考例

スポンサーリンク
スポンサーリンク

代表的な演算子

比較演算子は値と値が等しいかどうか、大きいかどうかなど値を比較するために使用します。MySQLで利用可能な比較演算子は以下の通りです。

演算子 意味
= 等しい
> 大きい
>= 以上
< 小さい,未満
<= 以下
<>,!= 等しくない
in() ある値が値セット内に含まれているかどうかを確認します
not in() 値が値セット内に含まれていないかどうかを確認します
is null 値がnull
is not null 値がnullでない
between …and … 値が値の範囲内に含まれているかを確認します
like パターン一致

まず、基本的に使用例です。

列を指定してデータを取り出す

列を指定してデータを取得する場合はselect を使います。

構文 : select 列1,列2 from テーブル名;

全てのデータを取得する場合はfromの前に*を付与します。

構文 : select * from テーブル名;

列に別名を付ける

name,priceを→「名前」と「価格」にする場合

select name, price from テーブル名;

を以下のように書き替える名前を付与します。

select name as 名前, price as 価格 from テーブル名;

※asは省略できます。

列の値に対して演算を行う

税込み価格を出力したい場合は、4行目の部分を追加します。

select 
    name as 名前,
    price as 価格,
    price * 1.08 as 税込価格
from 
    テーブル名;

それでは、演算子を使ってみましょう!

条件を指定してデータを取得する

条件を指定してデータを取得する場合は whereを使います。

構文 : select 列1, 列2… from テーブル名 where 条件;

=演算子の使用例

テーブルのidが1の行を取得

select * from テーブル名 where id = 1;

品名が「品名0010」の行を取得

select * from テーブル名 where name = '品名0010';

>演算子の使用例

price(価格)が1000より大きい行を取得

select * from テーブル名 where price > 1000;

>=演算子の使用例

price(価格)が9000以上のものを取得する場合

select name, price from テーブル名 where price >= 9000;

<演算子の使用例

price(価格)が1000より小さい行を取得

select * from テープル名 where price < 1000;

<>,!=演算子(等しくない)の使用例

price(価格)が100でない行を取得

select * from テーブル名 where price <> 100;

<>の代わりに!=を使用した例

select * from テーブル名 where price != 100;

in()演算子の使用例

テーブル内のidが1か2か3の行を取得

select * from テーブル名 where id in(1,2,3);

not in()演算子の使用例

テーブル内のidが1か2か3ではない行を取得

select * from テーブル名 where id not in(1,2,3);

is null演算子の使用例

price(価格)がnullの行を取得

select * from テーブル名 where price is null;

is not null演算子の使用例

price(価格)がnullでない行取得

select * from テーブル名 where price is not null;

between …and …演算子の使用例

price(価格)が900から1000の行を取得

select * from テーブル名 where price between 900 and 1000;

以下のようにandを使っても書けます。andは論理積。条件AもBも成り立つ時にtrueを返します。

select * from テーブル名 where price >=900 and price <=1000;

以下のようにor(論理和)も使えます。条件Aか条件Bが一つ以上成り立つ場合にtrueを返します。

price(価格)が1000円又は2000円の行を取得

select * from テーブル名 where price = 1000 or price = 2000;

パターン一致

パターン一致には like句を使う。

構文 : select 列1,・・・,from テーブル名 where 列名 like ワイルドカード文字;

ワイルドカード文字について

  • ワイルドカード文字で文字列のパターンを指定します。
  1. ‘%’ (パーセント)・・・0文字以上の任意の文字列
  2. ‘_’  (アンダースコア)・・・任意の1文字
  • 例)
  1. ‘田%’     →  ‘田’で始まる文字列
  2. ‘%田%’  →  ‘田’を含む文字列
  3. ‘%子’   →  ‘子’で終わる文字列
  4. ‘__子’    →  何かしらの2文字から始まり、’子’で終わる文字列

田から始まる苗字のユーザー一覧を取得(テーブル名users)

select * from users where last_name like '田%';

田を含むユーザー一覧を取得(テーブル名users)

select * from users where last_name like '%田%';

“子”で終わるユーザー一覧を取得(テーブル名users)

select * from users where first_name like '%子';

“子”で終わる3文字のユーザー一覧を取得(テーブル名users) 「_」アンダースコアが二つ入ってます。

select * from users where first_name like '__子';

にほんブログ村 IT技術ブログへ

スポンサーリンク
スポンサーリンク
SNSフォローボタン

フォローする

スポンサーリンク
スポンサーリンク