我使用MySQL查询:

SET @from := "";
SET @to := "";
SELECT licensep INTO @from FROM car_system_vehicle WHERE ID = 1;
SELECT licensep INTO @to FROM car_system_vehicle WHERE ID = 2;
UPDATE car_system_vehicle SET licensep = @to WHERE ID = 2;
UPDATE car_system_vehicle SET licensep = @from WHERE ID = 1;


替换两个值licensep

我可以使用phpMyAdmin成功运行它,但控制台返回如下错误:


  失败:(1064)您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以在附近使用正确的语法


那我该怎么办呢?

最佳答案

您不需要在变量中交换2条记录中的值:

UPDATE car_system_vehicle t1, car_system_vehicle t2
SET t1.licensep = t2.licensep, t2.licensep = t1.licensep
WHERE t1.id = 1 AND t2.id = 2;


必须保证的唯一条件是每个表的条件必须从中精确选择一个记录。

关于mysql - MySQL有一个奇怪的行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59825292/

10-09 00:35