4

私はPostgreSQLテーブルを持っています:

Username1 SomeBytes1

Username2 SomeBytes1

Username1 SomeBytes1

Username1 SomeBytes1

Username1という名前で、テーブルの最後からいくつかの行を取得する必要があります。たとえば、Username1の行の最後が必要です

select from my_table where user = Username1 LIMIT 2

最初の2行が表示されますが、最後の2行が必要です。

どうすれば選択できますか?

ありがとうございました。

4

2 に答える 2

8

テーブルの最初と最後は非常に恣意的です。予測可能な良い結果を得るためには、常にorder by句が必要です。これがあれば、最後の 2 行を簡単に取得できます。

たとえば、主キーまたは ID のようなもの (シーケンスによって入力される) がある場合は、次のことができます。

select * from my_table where user = 'Username1' order by ID desc limit 2.

desc行を逆順にソートするようにデータベースに指示します。つまり、最後が最初になります。

于 2012-05-29T08:54:35.810 に答える
2

あなたのテーブルには主キーがありますか? / あなたのテーブルはソートできますか? 「最初」と「最後」の概念は、タプルのソートを意味するためです。この場合、「最後の」エントリが一番上になるように、データを逆に並べ替えることができます。次に、試したステートメントでそれらにアクセスできます。

于 2012-05-29T08:59:28.403 に答える