2009-10-11 2 views
0

5 개의 필드가 있고 총 400 개의 레코드가있는 테이블이 있습니다. 이름에서 알 수 있듯이 레코드에 순서를 유지하는 '주문'이라는 새로운 필드를 추가했습니다.쿼리 또는 스크립트를 통해 mysql 테이블에 rownum을 삽입하십시오.

레코드를 삽입 한 후에 추가 했으므로이 필드를 SQL 쿼리를 통해 rownum과 같은 것을 사용하는 레코드의 현재 순서로 채우는 방법이 있는지 궁금 해서요. 아니면 PHP 스크립트를 사용해야합니까? 삽입물을 할거야?

PS : 나는 ROWNUM을 위해 인터넷 검색을 시도하고 아무것도 유용 :(

답변

1

나는 생각하지 않는다 SQL에서 가능하지만 기본 키를 초기 순서로 사용할 수 있습니다 기본적으로 행은 기본 키에 따라 정렬됩니다 어쨌든.

UPDATE table SET order = id; 
+0

감사합니다. – AntonioCS

+0

감사합니다.이 솔루션은 테이블에서 레코드를 삭제하지 않은 경우에만 작동합니다. rexem의 대답은 효과가 있으며 훨씬 더 강력한 솔루션입니다. –

+0

@James McNelis, 아니요, 삭제 한 경우에도 작동합니다. 물론, 명령은 연속적이지는 않지만 그럼에도 불구하고 증가 할 것입니다. 그리고 그것이 정렬 할 때 중요합니다. – vava

0

ROWNUM은 오라클 특정 구문을 찾을 수 없습니다 MySQL은 순위 기능이없는 - 당신이 얻을 수있는 가장 가까운 사용하는 것입니다.

SELECT t.*, 
     @rownum := @rownum+1 'rownum' 
    FROM TABLE t, (SELECT @rownum := 0) r 
...하지만 그 것이다 숫자 만 행이 -. 당신이 그룹을 교차 할 때, 한 번에 그룹을 조회해야 재설정하지 않습니다

관련 문제