2014-07-09 1 views
1

을 제공합니다 : 'ID': INT, 자동 증가 '머트'지능내가 2 개 필드 테이블 ('ertek')를 가지고 MySQL의에서 구문 오류

내가 행을 삭제할 여기서 'mert'의 값은 id ASC로 테이블을 정렬하면 이전 행보다 낮습니다.

내 쿼리 :

DELETE FROM ertek as t WHERE EXISTS (SELECT * FROM ertek AS t2 WHERE t2.id=t.id-1 AND t2.mert>t.mert) 

내가이 오류가 나타납니다 1064 - 당신은 당신의 SQL 구문에 오류가 있습니다; MySQL 서버 버전에 해당하는 설명서를 확인하여 올바른 구문을 사용하여 ''로 사용하십시오. WHERE EXISTS (SELECT * FROM ertek AS t2 WHERE t2.id = (t.id) -1 AND t2.mert> t 'at' 라인 1

이 도와주세요.

+0

가능한 중복을 삭제 테이블 이름의 별칭없이 \'별칭 \ '... WHERE \'별칭 \'. \'열 \'... 왜 구문 오류?] (http://stackoverflow.com/questions/10484532/delete-from-table-as-alias-where-alias-column-why -syntax-error) – Sadikhasan

답변

0

시도를

DELETE FROM ertek D 
WHERE EXISTS 
(SELECT * FROM ertek AS t2 WHERE t2.id=D.id-1 AND t2.mert>D.mert) 

또는`테이블 \를`\ FROM [삭제의

DELETE d1 FROM ertek d1 JOIN ertek d2 
    ON d2.id= (d1.id-1) AND d1.mert< d2.mert; 
+0

참조 : http://stackoverflow.com/questions/3346068/delete-statement-in-a-same-table –

+0

두 번째 소리가 잘 작동합니다. 감사. – CsabiV8