0
나는 정말 이상한 상황이있다. I는 I가 사용되도록 동일한 테이블에 두 개의 행 사이의 열 값을 바꿀 필요가 (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 질서 잘못된 사용으로 발생
가장 가까운 작은 데이터 항목을 원래 항목에 입력하고 두 값을 바꿔 넣기 만하면됩니다.
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 ** ** 처음 ** 주문 후 추가 시도가 성공하지 못했습니다. 다시 같은 오류가 발생합니다 ... –