1
我想要創建一個查詢,更新一個int基於id爲1更高的行的int。如何基於同一表中的anoter行進行更新?
我試過這個查詢,但它說我無法在更新語句中標記該表。但是,我如何在我的子查詢中引用它?
update t1 a set `int1` = (select `int1` from t1 b where b.id=a.id+1);
我該如何克服我無法使用別名?
我想要創建一個查詢,更新一個int基於id爲1更高的行的int。如何基於同一表中的anoter行進行更新?
我試過這個查詢,但它說我無法在更新語句中標記該表。但是,我如何在我的子查詢中引用它?
update t1 a set `int1` = (select `int1` from t1 b where b.id=a.id+1);
我該如何克服我無法使用別名?
嘗試這一個 -
UPDATE
t1 a
JOIN t1 b
ON b.id = a.id + 1
SET
a.int1 = b.int1;
如果有id
值孔,查詢可能改變。
它的工作原理,但正如他所說,ON子句應該是:ON b.id = a.id + 1 – Dippi
哦,是的。我改變了答案。 – Devart
謝謝。出於好奇,爲什麼我的例子不起作用?任何人都可以解釋嗎? –