LoginSignup
0
0

More than 3 years have passed since last update.

MySQL基礎(WHERE, GROUP BY)

Last updated at Posted at 2021-03-09

WHERE

SELECT * FROM posts WHERE message = 'hello';
SELECT * FROM posts WHERE message != 'hello';
SELECT * FROM posts WHERE likes <> 'hello';
  1. postsテーブルの中のmessageがhelloのレコードを取得
  2. postsテーブルの中のmessageがhello以外のレコードを取得
  3. postsテーブルの中のmessageがhello以外のレコードを取得

AND, BETWEEN

SELECT * FROM posts WHERE likes >= 10 AND likes <= 20;
SELECT * FROM posts WHERE likes BETWEEN 10 AND 20;
SELECT * FROM posts WHERE likes NOT BETWEEN 10 AND 20;
  1. postsテーブルの中のlikesが10以上かつ20以下のレコードを取得
  2. postsテーブルの中のlikesが10から20までのレコードを取得
  3. postsテーブルの中のlikesが10以上かつ20以下じゃないレコードを取得

OR, IN

SELECT * FROM posts WHERE likes = 4 OR likes = 12;
SELECT * FROM posts WHERE likes IN (4, 12);
SELECT * FROM posts WHERE likes NOT IN(4, 12);
  1. postsテーブルの中のlikesが4または12のレコードを取得
  2. postsテーブルの中のlikesが4または12のレコードを取得
  3. postsテーブルの中のlikesが4または12じゃないレコードを取得

LIKE, BINARY

SELECT * FROM posts WHERE message LIKE BINARY't%';
SELECT * FROM posts WHERE message LIKE BINARY'%t';
SELECT * FROM posts WHERE message LIKE BINARY'%t%';
SELECT * FROM posts WHERE message LIKE '__t%';
  • BINARY指定しないと大文字、小文字の区別せず取得する
  • { % _ }はエラーになりますので\を使用(例:\%)
  1. postsテーブルの中のmessageがtから始まるものレコードを取得
  2. postsテーブルの中のmessageがのtで終わるものレコードを取得
  3. postsテーブルの中のmessageがtの文字が入っているものレコードを取得
  4. postsテーブルの中のmessageが3文字目がtのレコードを取得

IS NOT NULL

SELECT * FROM posts WHERE likes != 12 OR likes IS NULL; 
SELECT * FROM posts WHERE likes IS NOT NULL; 
  1. postsテーブルの中のlikesが12以外でNULLを含めるレコードを取得
  2. postsテーブルの中のlikesがNULL以外のレコードを取得

ORDER BY, LIMIT

SELECT * FROM posts ORDER BY likes;
SELECT * FROM posts ORDER BY likes DESC;
SELECT * FROM posts ORDER BY likes DESC, message LIMIT 3;
  1. postsテーブルの中のlikesが少ない順番からレコードを取得
  2. postsテーブルの中のlikesが多い順番からレコードを取得
  3. postsテーブルの中のlikesが多い順番で数が同じの場合はmessageのアルファベット順で3件のレコードを取得
0
0
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
0
0