すべてのカラムの値を取得する
SELECT * FROM table_name;
10件読み飛ばして30件表示する(11~40番を表示)は、「LIMIT 10, 30」となる。
SELECT * FROM table_name LIMIT 10, 30;
読み飛ばしが0の場合は省略できる。
3件表示する。
SELECT * FROM table_name LIMIT 3;
「ORDER BY {カラム名}」を指定することで任意の列でソートすることができる。
ORDER BYでカラム指定した後に「DESC」を指定すると「降順」になる。
ORDER BYのデフォルトは「昇順」。意図的に昇順と指定する場合は「ASC」を指定する。
SELECT * FROM table_name ORDER BY number DESC;
ソートの対象として 2 つのカラムを指定する場合。
最初に name カラムの値でソートを行い、 name カラムの値が同じデータに関して number カラムの値でソートを行う。カラム毎に昇順か降順かは指定できる。
SELECT * FROM table_name ORDER BY name DESC, number ASC;
ランダムにレコードを取得する場合。
SELECT * FROM table_name ORDER BY RAND ();
SELECT文に続いて「WHERE 条件式」というように条件指定をして検索する。
SELECT * FROM table_name WHERE name = 'No Name';
複数の条件式を指定する際は、論理演算子の「AND」や「OR」で接続する。
ワイルドカードを使って文字列を検索する。
アンダスコア記号(_)→任意の1文字にマッチする。
パーセント記号(%)→0個以上のの連続した文字にマッチする。
SELECT * FROM table_name WHERE birthday LIKE '199%';
カラムの値が指定した値のリストの中に一致したものを抽出。
SELECT * FROM table_name WHERE id IN(8, 38, 43);
IN のリストの順番でソートする。
SELECT * FROM table_name WHERE id IN(7, 5, 3) ORDER BY FIELD(id, 7, 5, 3);
検索欄が空欄のとき、全検索にする。
SELECT * FROM table_name WHERE CASE WHEN 検索値 = '' THEN TRUE ELSE 検索対象列 = 検索値 END;
同一単語を複数カラム(colA, colB)にわたって検索する。
SELECT * FROM table_name WHERE CONCAT(IFNULL(colA,''), IFNULL(colB,'')) = 検索値;