-3

我正在尝试根据其他列的值替换列值,但我不断收到语法错误。我究竟做错了什么?这就是我累了:

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

这给了我更新以下所有内容的错误。

4

2 回答 2

3

您不能在一个查询中同时使用 UPDATE 和 SELECT。

像这样分别执行这两个查询:

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

然后执行:

UPDATE `table`
SET `id_1` = 188
WHERE `id_2` = 6;
于 2013-07-08T12:55:36.537 回答
2

您缺少语句结尾的标点符号“;” 在您的选择声明之后。执行 SELECT 后,您必须在开始下一条语句(更新)之前结束该语句:

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

这将摆脱你的语法错误。

于 2013-07-08T12:56:48.510 回答