mysql - MySQL有一个奇怪的行为
问题描述
我使用 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 成功运行它,但控制台返回如下错误:
FAIL: (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;
必须保证的唯一条件是每个表的条件必须从中准确选择一条记录。
推荐阅读
- node.js - 在 Node.js 中加载 TensorFlow 冻结图 (.pb)
- arrays - 如何检查值是否在存储在数组中的两个值之间
- ios - UITableView 自定义单元格在滚动时复制 UIButton
- winston - TypeError:winston.createLogger 不是构造函数
- php - 获取多个 Post_meta 并显示最小值
- javascript - 将3个对象变成多维数组
- css - Nth-child 针对所有其他孩子,但始终包括最后一个
- c# - 如何在 C# 中转义 "\"String\""
- jenkins - Openshift - 将詹金斯应用程序添加到项目时出错
- javascript - 在其他组件中使用导航登录