- 締切済み
SQLで。
webでphpを使ってpostgreSQLのデータを表示させています。 pgSQLのデータベース、「テーブルA」があります。 そこで「テーブルA」のデータを引っ張ってくるときに最後の50件だけを表示させたい場合は どういったSQL文だとそのデータを引っ張ってこれるのでしょうか? それともSQLでテーブルAのデータを全部引っ張ってきたあとphpで最後の50件だけ表示させないとだめなのでしょうか? ちなみに「テーブルA」にはフィールド名、「code」と言うフィールドにオートナンバー型のデータが 「1~n」あります。 初心者なのでうまく説明できなくて申し訳ありませんが 良いやり方がありましたら宜しくお願いしします。 PostgreSQL 7.0.2 PHP4
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- youki64
- ベストアンサー率33% (3/9)
下記timberさんの補足 select * from tableA order by code DESC offset 0 limit 50; postgreSQLではこれでOK
- timber
- ベストアンサー率29% (218/739)
postgreSQLって使ったことないので、間違ってるかもしれません。 select * from (select * from tableA order by code) offset 0 limit 50; もしくは select * from tableA where code >= (select max(code)-50 from tableA); でどうでしょうか。
- J_ANBI
- ベストアンサー率48% (24/49)
すみません。 補足です。 相変わらず、試していないのですが・・・。 pg_fetch_Array(コネクションID,取得したい行) という形式で指定すると、結果セットの途中から アクセスできるようですね。 逆順にソートしなくてもいいので、こっちのほうが 見栄えがいいかもしれませんね。
- J_ANBI
- ベストアンサー率48% (24/49)
現在、手元に実行環境がありませんので、試 していませんが・・・。 SQLに「ORDER BY 列名 DESC」をつけてくだ さい。 これで、データが逆順にソートされますから、 pg_fetch_array等で、取得する処理を50回繰 り返せば可能かな、と思います。 外してたらごめんなさい。