「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人」という枠の売り方がいいのかも。
ファーストビューに表示されるのとそうでないのとでは、全然クリック数が違ってくるんですよね。