我使用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/