Re: How to write such a query

Поиск
Список
Период
Сортировка
От Rob Sargent
Тема Re: How to write such a query
Дата
Msg-id 1C9CA252-1689-4F69-BC66-CDCDFE46FE87@gmail.com
обсуждение исходный текст
Ответ на Re: How to write such a query  (Ken Tanzer <ken.tanzer@gmail.com>)
Список pgsql-general


On Sep 18, 2020, at 1:45 PM, Ken Tanzer <ken.tanzer@gmail.com> wrote:

> How to find what the primary key (or UNIQUE identifier) value is
> for row 5 in the recordset?

You're missing the point: as mentioned before, there is no "row 5". To
update the 5th record that you've fetched, you increment a counter each time
you fetch a row, and when you read #5, do an UPDATE X SET field1 = 'blarg'
WHERE id = <thekeyvalue>;


It seems worth mentioning for benefit of the OPs question that there _is_ a way to get a row number within a result set.  Understanding and making good use of that is an additional matter.

SELECT X.field1, Y.field2,row_number() OVER ()  from X, Y WHERE X.id = Y.id -- ORDER BY ____?

That row number is going to depend on the order of the query, so it might or might not have any meaning.  But if you queried with a primary key and a row number, you could then tie the two together and make an update based on that.

If “row 5” as seen by the OP has no distinguishing characteristic directing OP to edit that tuple then he’s in a world of hurt, well beyond the reach of anyone here.

В списке pgsql-general по дате отправления:

Предыдущее
От: Ken Tanzer
Дата:
Сообщение: Re: How to write such a query
Следующее
От: Igor Korot
Дата:
Сообщение: Re: How to write such a query