LoginSignup
9
9

More than 5 years have passed since last update.

みんなの為のMySQLまとめ(6)

Posted at

参考
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/mysql_11.htm

■抽出問い合わせ(抽出条件、条件抽出)

・単純な抽出条件は次のように指定する。
この例では、key1 が「a001」のものだけが問い合わされる。

select * from testm
where key1 = 'a001'
order by key1
;
kobito.1423384908.635072.png

・この例では、key1 が「a001」以外のものだけが問い合わされる。

select * from testm
where key1 <> 'a001'
order by key1
;
kobito.1423445330.767335.png

・この例では、data3 が NULL のものだけが問い合わされる。
(空列検索、NULL 列検索、NULL 検索、NULL 抽出)

select * from testm
where data3 is null
order by key1
;

・この例では、data3 が NULL でないものだけが問い合わされる。
(NULL 以外)

select * from testm
where not data3 is null
order by key1
;

・範囲抽出条件は次のように指定する。
この例では、key1 が「a000」~「a999」の範囲が問い合わされる。

select * from testm
where key1 >= 'a000' and key1 <= 'a999'
order by key1
;
kobito.1423445680.474696.png

・SQL 関数を用いての抽出条件は次のように指定する。
この例では、key1 が「a」で始まるものが問い合わされる。

select * from testm
where substring(key1, 1, 1) = 'a'
order by key1
;

・substring() を使うより、マッチパターンの like を使う方が便利である。
この例では、key1 が「a」で始まるものが問い合わされる。

select * from testm
where key1 like 'a%'
order by key1
;

kobito.1423445838.610856.png

・like では、ワイルドカードの「%」と一文字マッチ用の「_」が使える。
この例では、key1 が先頭はなんでもよいが、それ以降が「001」のものが問
い合わされる。しかし、最後に「%」がないと抽出されない。

select * from testm
where key1 like '_001%'
order by key1
;
kobito.1423446008.010681.png

・between では、値の範囲を指定できる。
この例では、data3 が 10 ~ 100 のものが問い合わされる。

select * from testm
where data3 between 10 and 100
order by key1
;
kobito.1423446090.569968.png

・and では、条件を共に満たす抽出がてきる。
この例では、data1 と data2 が 10 より上のものだけが問い合わされる。

select * from testm
where data1 > 10 and data2 > 10
order by key1
;
kobito.1423446180.504515.png

・or では、各条件を満たす抽出がてきる。
この例では、data1 か data2 のどちらが 10 より上のものが問い合わさ
れる。

select * from testm
where data1 > 10 or data2 > 10
order by key1
;
kobito.1423446328.321097.png

・and と or の組み合わせは、優先順位を () で必ず指定するようにする。
この例では、data1 か data2 のどちらが 10 より上のもので、key1 の先頭
が「c」で始まるものだけが問い合わされる。

select * from testm
where (data1 > 10 or data2 > 10) and key1 like 'c%'
order by key1
;
kobito.1423446427.724957.png

■ソート(並べ換え、並べ替え)

・order by 句でソート順が指定できる。
この例では、key1 の昇順に問い合わされる。

select * from testm
order by key1
;
kobito.1423446506.173144.png

・desc を指定すると降順になる。
この例では、key1 の降順に問い合わされる。

select * from testm
order by key1 desc
;

・ソートオーダは複数項目指定できる。
この例では、data1 の大きい順で key1 の昇順に問い合わされる。

select * from testm
order by data1 desc, key1
;
kobito.1423446590.557574.png

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9