2012-09-28 3 views
0

다음 쿼리를 실행하려고하는데 오류가 발생합니다. 이 쿼리가 작동 제한없이 다중 테이블 DELETE LIMIT

DELETE b 
FROM parim_lang a 
JOIN parim_lang b 
    ON b.lang_hash = a.lang_hash 
    AND b.lang_language = SUBSTRING(a.lang_google_translation, LOCATE('-', a.lang_google_translation) + 1) 
WHERE a.lang_google_translation REGEXP '^[a-z]+-[a-z]+' 
LIMIT 20 

..

오류는 다음과 같습니다

SQL 오류 (1064) : 당신은 당신의 SQL 구문에 오류가 있습니다; , 다중 테이블 구문을 보려면

각에서 삭제 삭제이 발견 라인 7

에 가까운 'LIMIT 20'를 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인 tbl_name 조건을 만족시키는 행. 이 경우 ORDER BY 및 LIMIT는 사용할 수 없습니다.

이 경우 해결 방법이 있습니까?

+0

'다중 테이블 구문에 대한 삭제 삭제는 조건을 만족하는 행을 tbl_name을. 이 경우 ORDER BY와 LIMIT는 사용할 수 없습니다. ' –

답변

1

시도 : 각에서

DELETE 
FROM parim_lang a 
WHERE a.lang_hash IN (
SELECT a.lang_hash 
FROM parim_lang a 
JOIN parim_lang b 
    ON b.lang_hash = a.lang_hash 
    AND b.lang_language = SUBSTRING(a.lang_google_translation, LOCATE('-', a.lang_google_translation) + 1) 
WHERE a.lang_google_translation REGEXP '^[a-z]+-[a-z]+') LIMIT 20 
+0

'SQL 오류 (1235) :이 버전의 MySQL은'LIMIT & IN/ALL/ANY/SOME 하위 쿼리 '를 지원하지 않으며 버전 5.5를 사용하고 있습니다. – Kristian

+0

편집 됨, 이제 작동해야 함 (작은 쿼리 예제에서 내 컴퓨터에서 작업 중) – Cosmin