WHERE
SELECT * FROM posts WHERE message = 'hello';
SELECT * FROM posts WHERE message != 'hello';
SELECT * FROM posts WHERE likes <> 'hello';
- postsテーブルの中のmessageがhelloのレコードを取得
- postsテーブルの中のmessageがhello以外のレコードを取得
- 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;
- postsテーブルの中のlikesが10以上かつ20以下のレコードを取得
- postsテーブルの中のlikesが10から20までのレコードを取得
- 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);
- postsテーブルの中のlikesが4または12のレコードを取得
- postsテーブルの中のlikesが4または12のレコードを取得
- 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指定しないと大文字、小文字の区別せず取得する
- { % _ }はエラーになりますので\を使用(例:\%)
- postsテーブルの中のmessageがtから始まるものレコードを取得
- postsテーブルの中のmessageがのtで終わるものレコードを取得
- postsテーブルの中のmessageがtの文字が入っているものレコードを取得
- 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;
- postsテーブルの中のlikesが12以外でNULLを含めるレコードを取得
- 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;
- postsテーブルの中のlikesが少ない順番からレコードを取得
- postsテーブルの中のlikesが多い順番からレコードを取得
- postsテーブルの中のlikesが多い順番で数が同じの場合はmessageのアルファベット順で3件のレコードを取得