0
我有一个非常奇怪的情况。我需要在同一个表中的两行之间交换一列值,所以我使用(其中S1和S2是两行)使用MySQL交换同一个表中的值
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不起作用。我错了什么?
我相信如果你只能使用'ORDER BY'当且仅当你只修改你的'ORDER BY'中的列所属的表。我知道你实际上只修改一个表,但MySQL可能不会那样看。 – NullUserException
另外为什么你有'LIMIT 1'条款?你不修改至少2行吗? – NullUserException
我刚刚尝试在第一个**命令**之后添加** s1.order ASC **,但没有成功。再次发生同样的错误... –