我正在尝试根据其他列的值替换列值,但我不断收到语法错误。我究竟做错了什么?这就是我累了:
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
这使我在UPDATE以下的所有内容都出错。
答案 0 :(得分:3)
您不能在一个查询中使用UPDATE和SELECT。
单独执行这两个查询:
SELECT * FROM `table` WHERE `id_1` = 164 AND `id_2` = 6;
然后执行:
UPDATE `table`
SET `id_1` = 188
WHERE `id_2` = 6;
答案 1 :(得分:2)
你错过了标点符号的结尾';'在你的select语句之后。在执行SELECT之后,必须在开始下一个语句(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
这将消除您的语法错误。