2013-10-12 9 views
0

동일한 열 값을 가진 테이블에서 X 행을 삭제하고 싶습니다. 이 질문의 더 좋은 방법은이 질문을 SQL 쿼리 방식으로 작성하는 것입니다. 이해해주십시오.테이블에서 X 행을 삭제하십시오.

DELETE id FROM table_name WHERE column_value = 1 AND user_id = 2; 

이 쿼리는 3 개의 행을 삭제해야합니다. 이것을 어떻게 할 수 있습니까? 당신이 숫자로 X 대체 어디

DELETE FROM table_name WHERE column_value = 1 AND user_id = 2 LIMIT X; 

:

+0

for() 루프를 사용해 보셨습니까? –

+0

왜 그 쿼리를 3 번 ​​실행하고 싶습니까? 첫 번째 이후에 완료되지 않습니까? –

+0

3 개의 행을 제거 하시겠습니까? 'WHERE column_value IN (...)'을 사용하지 않는 이유는 무엇입니까? 또는 다른 테이블에서 쿼리를 다시 사용 하시겠습니까? – nietonfir

답변

2

하나는 (: http://dev.mysql.com/doc/refman/5.0/en/delete.html MySQL의 설명서에 따라)을 LIMIT 키워드를 사용할 수 있습니다.

편집 :

The MySQL-specific LIMIT row_count option to DELETE tells the server the maximum number of rows to be deleted before control is returned to the client. This can be used to ensure that a given DELETE statement does not take too much time. You can simply repeat the DELETE statement until the number of affected rows is less than the LIMIT value.

LIMIT는 MySQL의 특정 명령은 당신이 할 수 없습니다 : 당신이 해결하려고하는 문제가 해결처럼 (주석에 대한)

내가, 사양에서이 복사 본다 일반 SQL 쿼리로 사용하면 PostgreSQL과 같은 다른 데이터베이스가 이러한 쿼리를 실행하지 못할 수 있습니다.

또 다른 설명 : id을 쿼리에 지정했습니다. 행을 제거하면 열을 지정하지 않아야합니다.

SQL Fiddle을 사용하여 테스트 한 결과 성공했습니다 : http://sqlfiddle.com/#!2/13ccb7/1/0http://sqlfiddle.com/#!2/258203/1/0.

+0

MySQL의 문서에 따르면, http://dev.mysql.com/doc/refman/5.0/en/delete.html 일반적으로 SQL은 아닙니다. 나는 그것에 동의한다. –

+1

틀렸어.AFAIK – user2854563

+0

으로 DELETE에서 LIMIT를 사용할 수 없습니다. 단일 테이블 모드를 사용하는 경우 두 개 이상의 테이블을 혼합하거나보기를 사용할 때 수행 할 수는 없지만 수행 할 수는 없습니다. –

관련 문제