人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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



●質問者: disca
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP postgreSQL SELECT
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ito-yu
●35ポイント

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

◎質問者からの返答

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


2 ● ito-yu
●35ポイント

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;

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ