• ベストアンサー

特定データの取り出しについて

どうしても処理がわからなかったのでご教授頂けたら幸いです。 掲示板にて特定記事の上位表示固定の処理をしたいのです。 参考データ ----------------- No Name Date ----------------- 1 aaa 111 2 bbb 222 3 ccc 333 4 ddd 444 5 eee 555 ----------------- というテーブルデータがあったとして、 例えば、2番の記事を上位に表示したい場合は 掲示板上の表示で下記のようにしたいのです。 2.bbb > 222 1.aaa > 111 3.ccc > 333 4.ddd > 444 5.eee > 555 といったように2をきちんと切り抜いた状態です。 よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • little-m
  • ベストアンサー率44% (45/102)
回答No.3

IF()などの関数を使えばできるかもと思いました。 たとえば、以下のような感じで、No=2 が一番上に来る項目を作って、それでソートします。 select no, name, date, IF(no = 2, 0, 1) as no2 from BBS order by no2, no  試していませんので、参考までに。

ka_zu57
質問者

お礼

ご教授ありがとうございます。 教えて頂いた方法でうまくいきました。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • nanimania
  • ベストアンサー率36% (34/93)
回答No.2

SQLで特定のデータのソートは難しいと思いますよ。 カラム単位でソートするのは簡単ですが。。 質問内容のようなことがしたい場合、 取り出すSQLではなく、とった後プログラム側でソートするのが一般的かと思います。 SQLの中でいろいろ編集するとレスポンスも悪くなりますし、プログラムで実装するのをオススメします。

すると、全ての回答が全文表示されます。
回答No.1

こんにちは。 単純かもしれませんが、 SELECT no, name, data FROM そのテーブル WHERE 一番上に出したいやつの条件 UNION SELECT no, name, data FROM そのテーブル WHERE 一番上に出すやつ以外 ORDER BY なんか で可能ですが・・・。 ダメですか??? (^^ゞ

ka_zu57
質問者

補足

ありがとうございます。 ご教授頂いた通りにしてみましたがうまく表示しませんでした。 $sql = "SELECT * FROM bbs WHERE no=3 UNION SELECT * FROM bbs WHERE no<>3 ORDER BY no DESC"; 3 1 2 4 5 と表示したいのですが 上記の方法に問題があるのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A