PostgreSQL と PHP についての質問です。

テーブルの select 結果順に 行番号を0から付加したいのですが、どうすれば良いのでしょうか?
例;
select *, 結果行番号 from hoge_tb;

よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2006/08/30 11:12:20
  • 終了:2006/09/06 11:15:04

回答(2件)

id:ito-yu No.1

ito-yu回答回数323ベストアンサー獲得回数142006/08/30 11:26:35

ポイント35pt

SQLで行番号を付ける方法も有りますが、PHP側で対処する場合を書きますね。

$sql = "select * from hoge_tb";

$result = pg_fetch_all(pg_query($sql));

foreach($result as $ln => $row){

echo "行番号:{$ln} ".print_r($row, true)."<br>";

}

要するに配列の添字を使うんですね

http://jp.php.net/manual/ja/function.pg-fetch-all.php

id:disca

ありがとうございます。SQLで行番号をつける方法をご教授していただけますでしょうか?

2006/08/30 12:58:23
id:ito-yu No.2

ito-yu回答回数323ベストアンサー獲得回数142006/08/30 15:36:11

ポイント35pt

SQLで単にやろうとすると面倒でした…

以下、一例。

# カウンタ用にシーケンスを準備しておいて(最初の1回だけ)

CREATE TEMP SEQUENCE counter;

# 各クエリでは以下のような2つのSQLを発行する

SELECT SETVAL('counter', 1, false);
SELECT NEXTVAL('counter')-1 AS linenumber,* FROM hoge_tb;

http://www.postgresql.jp/document/pg814doc/html/functions-se...

※PostgreSQLのシステム列でctid(タプルID)てやつが有るんですが、これそのままでは使えないんですね。惜しい。

SELECT ctid AS linenumber,* FROM hoge_tb;

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • ito-yuの日記 2006-08-30 18:07:57
  • SQL assari (PukiWiki/TrackBack 0.3) 2008-01-30 10:59:40
    WikiPedia:SQL SQL Structured Query Language RDBMS Relational DataBase Management System エドガー・F・コッド リレーショナルデータベースの生みの親 &quot;A relational Model of Data for Large Shared Data Banks&quot;, 1970 xreaでMyS
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません