MySQL 検索・並べ替え・グループ化
ORDER BY(並べ替え)
SELECTで検索した結果を指定した列を基準に並び替える
昇順 ASC(省略可)
SELECT 列名1, 列名2... FROM テーブル名 ORDER BY 指定する列名や集計関数 ASC;
降順 DESC(省略不可)
SELECT 列名1, 列名2... FROM テーブル名 ORDER BY 指定する列名や集計関数 DESC;
複数の列を指定した場合
指定した列の左から大分類、小分類と並び替える
SELECT 列名1, 列名2... FROM テーブル名 ORDER BY 指定する列名1, 指定する列名2 DESC;
上記説明: 指定する列名1を昇順で並び替え、同じ値がある場合は指定する列名2の降順で並び替える
LIMIT(上位or下位の数件のみ表示)
指定した列の降順で指定数行を表示
SELECT 列名1,... FROM テーブル名 ORDER BY 指定する列名や集計関数 DESC LIMIT 数値;
OFFSET (開始位置を指定)
SELECT 列名1,... FROM テーブル名 ORDER BY 指定する列名や集計関数 DESC LIMIT 数値; OFFSET 数値;
*LIMITとOFFSETを使って「数値~数値までのデータ」と指定が可能になる
GROUP BY(グループ化)
- 指定された列の値が等しい行をまとめる
- グループごとに集計関数を実行したいときに利用
SELECT SUM(stocks) AS '新しい列名' FROM テーブル名 GROUP BY 列名;
* GROUP BY で別名で指定する場合はバッククォート「 ` 」or 何も囲わない
HAVING(グループ化後の検索条件)
SELECT 列名・集計関数 FROM テーブル名 GROUP BY グループ化する列名 HAVING 条件;
記述 | 実行するタイミング | 集計関数 | 別名 |
---|---|---|---|
WHERE | グループ化される前 | 不可 | 不可 |
HAVING | グループ化した後 | 可能 | 可能 |
SELECT文 ~まとめ~
SELECT 検索する列名 FROM テーブル名 WHERE 条件 GROUP BY グループ化定義 HAVING グループ化後の検索条件 ORDER BY 並べ替えの定義 ;