レスが付いたらスレッドを上に上げるSQL
SQLをある程度書けるとPHPやほかのプログラムの書く量が減ると思う。
実際サブクエリーやSQL関数が使えるだけで随分違う。
最近やっとサブクエリの重要さに気づいて取り組んでいる。
とある掲示板システムでのサンプル
レスが付いたらスレッドを上に上げるSQL
SQL
SELECT *,(SELECT MAX(T2.update_time) FROM entry_tbl as T2 WHERE T2.resflg=T1.ID) as uptime FROM entry_tbl as T1 WHERE resflg=0 ORDER BY uptime DESC,T1.update_time DESC
ここでのresflgは本スレの場合、0が立つ。
レスの場合はIDに紐付けするのでresflgには本スレと同じID番号が入る。
上記だけだとレスの表示処理が入っていないので、もっとカスタマイズすれば
レスも合わせて表示出来る処理に出来そう。。実力不足のため4時間ほど粘ったが思いつかず。
MAX関数はそのフィールド内での最大値取得。
今回収穫はORDER BYで複数フィールドが指定出来るという事に気づいた事。
今までは1フィールドしか指定してなかったからなぁ…SQL奥深い。。







