Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用单个查询更新两行的交换值_Mysql_Swap - Fatal编程技术网

Mysql 如何使用单个查询更新两行的交换值

Mysql 如何使用单个查询更新两行的交换值,mysql,swap,Mysql,Swap,是否有一个查询可以通过单个查询交换两行的值?您可以在本文中看到解决方案 查看:优雅的方式,创建一个连接以从要在一行中交换的两行中获取数据,之后进行更新很容易 例如: UPDATE rules AS rule1 JOIN rules AS rule2 ON ( rule1.rule_id = 1 AND rule2.rule_id = 4 ) SET rule1.priority = rule2.priority, rule2.priority = rule1.priority ; 如果要交换

是否有一个查询可以通过单个查询交换两行的值?

您可以在本文中看到解决方案

查看:优雅的方式,创建一个连接以从要在一行中交换的两行中获取数据,之后进行更新很容易

例如:

UPDATE
rules AS rule1
JOIN rules AS rule2 ON
( rule1.rule_id = 1 AND rule2.rule_id = 4 )
SET
rule1.priority = rule2.priority,
rule2.priority = rule1.priority
;

如果要交换最后两行呢?您的解决方案是交换两列,问题是关于交换两行。我正在搜索如何交换两列,很好的解决方案:)它既有用又简单。
UPDATE my_table SET a=@tmp:=a, a=b, b=@tmp;