Обновить запись с наибольшим значением id, где nick = 'a' - PullRequest
1 голос
/ 10 февраля 2011

Какой самый быстрый способ обновить запись с наибольшим значением id, где nick = 'a' (в одном запросе)?

Моя таблица выглядит так:

+------+--------+----+
| nick | post   | id |
+------+--------+----+
| a    | tehe   |  1 |
| a    | tehe 2 |  2 |
| a    | tehe 3 |  3 |
| b    | omg    |  4 |
| b    | omg 2  |  5 |
| a    | tehe 4 |  6 |
| b    | omg 3  |  7 |
+------+--------+----+

Я попытался:

update (select * from posts where nick='a' order by id limit 1) as last_id set post='tehe 4 updated';

, но целевая таблица last_id ОБНОВЛЕНИЯ не обновляется. Теперь я знаю, что это не должно работать.

update posts set post = 'tehe 4? updated' where id = (select id from posts where nick='a' order by id desc limit 1); 

, но вы не можете указать целевую таблицу 'сообщения для обновления в предложении FROM

1 Ответ

1 голос
/ 10 февраля 2011
update posts
    set post = 'tehe 4 updated'
    where nick='a'
    order by id desc limit 1
...