Как обновить на основе строки anoter в той же таблице? - PullRequest
1 голос
/ 04 октября 2011

Я хочу создать запрос, обновляющий int на основе int строки с идентификатором, который на 1 выше.

Я пробовал этот запрос, но он говорит, что я не могу пометитьтаблица в заявлении об обновлении.Но как мне сослаться на это в моем подзапросе?

update t1 a set `int1` = (select `int1` from t1 b where b.id=a.id+1);

Как мне преодолеть то, что я не могу использовать псевдоним?

1 Ответ

2 голосов
/ 04 октября 2011

Попробуйте это -

UPDATE
  t1 a
  JOIN t1 b
    ON b.id = a.id + 1
SET
  a.int1 = b.int1;

Если в значениях id есть дыры, запрос может быть изменен.

...