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 並べ替えの定義 ;