我有一个非常奇怪的情况。我需要在同一个表中的两行之间交换列值,所以我使用(其中 s1 , s2 是两行)
UPDATE table s1, table s2
SET s1.data = s2.data, s2.data = @temp
WHERE @temp:=s1.data AND [some expression that works]
ORDER BY s2.data ASC
LIMIT 1
这会产生错误错误使用UPDATE和ORDER BY
我只是想从表中找到原始条目中具有最接近的较小数据条目的条目并交换这两个值。做
SELECT * FROM table s1, table s2
WHERE [the same expression that works]
ORDER BY s2.data ASC
LIMIT 1
返回包含所需结果的表,但提到的 UPDATE 不起作用。我错了什么?
答案 0 :(得分:0)
显然我想要的不能在一个 MySQL 查询中完成。我最终为每个列执行了3个查询,一个 SELECT 和两个 UPDATE ,并使用 PHP 中的临时变量。我想它也可以在 MySQL 中用 MySQL 临时变量连续三次查询。