MySQL: LIMIT를 사용하여 여러 행 업데이트
MySQL에서 LIMIT 절을 사용하면 쿼리의 영향을 받는 행 수를 제한할 수 있습니다. . 그러나 UPDATE 문과 함께 LIMIT를 사용하면 특정 행 범위를 업데이트하려고 할 때 일반적인 오류가 발생합니다.
다음 쿼리를 고려하세요.
UPDATE messages SET test_read=1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5;
이 쿼리는 5개 행을 업데이트하는 것을 목표로 합니다. "userid"가 "xyz"인 "messages" 테이블의 다섯 번째 행부터 시작하는 행입니다. 그러나 이 쿼리는 오류를 발생시킵니다.
이유를 이해하려면 이 컨텍스트의 LIMIT 절이 오프셋과 최대 행 수를 정의한다는 점에 유의하는 것이 중요합니다. 이 예에서는 표시되는 행 수를 업데이트하는 대신 검색하고 제한합니다. 특정 행 범위를 업데이트하려면 하위 쿼리를 대신 사용할 수 있습니다.
UPDATE messages SET test_read=1 WHERE id IN ( SELECT id FROM ( SELECT id FROM messages ORDER BY date_added DESC LIMIT 5, 5 ) tmp );
이 수정된 쿼리에서는 하위 쿼리를 사용하여 업데이트해야 하는 5개 행의 ID를 선택합니다. 그러면 기본 UPDATE 문이 이러한 ID를 일치시키고 업데이트를 수행합니다. 이렇게 하면 원하는 행만 수정됩니다.
위 내용은 LIMIT를 사용하여 MySQL의 특정 행 범위를 올바르게 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!