2013-07-08 43 views
-4

我想取代基於列值從其他列的值,但我不斷收到語法錯誤。我究竟做錯了什麼?這是我累了:mysql設置和更新

SELECT * FROM `table` WHERE `id_1` =164 and `id_2` = 6 
SET `id_1` = (188|164) 
WHERE `id_1` = 164 AND `id_2` = 6 
UPDATE `table` 

這給了我一個SET附近的語法。

SELECT * FROM `table` WHERE `id_1` = 164 AND `id_2` = 6 
UPDATE `table` 
SET `id_1` = 188 
WHERE `id_2` = 6 

這給了我一個錯誤,下面的所有更新。

幫助?謝謝。

+0

這可能是最好查找UPDATE語句的語法。 http://dev.mysql.com/doc/refman/5.5/en/update.html –

回答

2

您不能在一個查詢中使用UPDATE和SELECT。

分別執行兩種查詢是這樣的:

SELECT * FROM `table` WHERE `id_1` = 164 AND `id_2` = 6 

然後執行:

UPDATE `table` 
SET `id_1` = 188 
WHERE `id_2` = 6; 
+0

這工作。謝謝 – Kisaragi

+0

@Kisaragi然後將其標記爲已接受。 –

1

你缺少聲明標點符號結束 ';'在您的選擇語句後。當你做一個選擇,你必須結束這種說法你開始你的下一個語句(在UPDATE)前:

SELECT * FROM `table` WHERE `id_1` = 164 AND `id_2` = 6; -- semicolon goes here 
UPDATE `table` 
SET `id_1` = 188 
WHERE `id_2` = 6; -- and another semicolon goes here 

這將擺脫你的語法錯誤。