2011-03-28 5 views
0

기본 키 또는 고유 키가없는 테이블이 있습니다.업데이트를위한 MySQL 오프사이드가 있습니까?

날짜순으로 정렬되는 n 번째 레코드의 일부 값을 업데이트하고 싶습니다.

mysql 업데이트 제한 (제한 1,2와 같은)에 대한 오프셋이 없습니다. 어떻게해야합니까?

+0

당신은 값이 변경 ROW_NUMBER'유사한 기능을 얻을 때 재설정 순위 값을 생성하기 위해 변수를 사용하여 MySQL의 쿼리를보고해야합니다() OVER (PARTITION BY 값) AS rank' MySQL이 분석 함수를 지원하지 않기 때문에 –

답변

1
UPDATE table_name 
... 
WHERE ids in (SELECT ids FROM table_name limit ....) 
+0

안녕하세요, spinning_palte,이 표에는 기본 키나 고유 키가 없습니다. – skargor

1

당신은 임시 테이블을 만들 수 있습니다 ... 못생긴, 그러나? LIMIT 절을 사용하여 선택하는 날짜 필드의 정렬 된 값을 사용하여 임시 테이블을 만드는 것이 좋습니다. 그런 다음 임시 테이블의 값을 사용하여 원래 테이블을 갱신 할 수 있습니다.

그것은이 같은 것입니다 :

create temporary table temp 
    select date_field from mytable order by date_field limit 4,2; 

update mytable set another_field='FOUND' 
where date_field in (select date_field from temp); 
관련 문제