「ORDER BY」句で複数条件を指定する。 | φ(..)メモとして残しておこう…

「ORDER BY」句で複数条件を指定する。



SQLを投げるとき「ORDER BY」句に複数の条件を指定したいときって結構あります。

そんな時は「,」で区切って条件を複数指定することが出来ます。

SELECT * FROM table ORDER BY name, id

先に「name」でASCしてから、「id」でASC。


SELECT * FROM table ORDER BY name DESC, id

先に「name」でDESCしてから、「id」でASC。


もちろん、RAND()関数との組み合わせも( `д´)b オッケー!

SELECT * FROM table ORDER BY flg DESC,RAND()

ランダムに取得したデータをflgのDESC順にソート。


RAND()関数との組み合わせでよく使うのは「先に広告料金をいただいている店舗のデータを表示させたい」って時ですかね。

「flg=0」→「広告ではない」
「flg=1」→「広告扱い」

のときに、さっきの「ORDER BY」句を使うと

広告扱いのデータをランダムに表示したあとに、広告ではないデータをランダムに表示…という順で表示出来ます。

スマホサイトのマネタイズは、この方法が一番いいんじゃないかな~と思ってます。

ドキポケネットの場合、ファーストビューが12件なので、各カテゴリあたり「4店舗×3人=12人」という枠の売り方がいいのかも。

ファーストビューに表示されるのとそうでないのとでは、全然クリック数が違ってくるんですよね。