2011-02-09 2 views
0

, 나는 내가 쿼리에서의 인덱스를 기반으로 자신의 할 것인지는를 설정하려는,SQL 루프 속성을 설정 SQL에서

SELECT * FROM `comics` 
WHERE 1 
ORDER BY pageNumber ASC 

그런 PAGENUMBER 순서로, 목록을 조회하고 싶습니다 (1부터 시작 0 대신).

다음은 원하는대로 기능에 대한 의사 코드입니다. 여기서 list는 위의 Select Query의 리턴 값입니다.

for(var n:int = 0; n<list.length; n++){ 
    if(list[n].pageNumber != n+1){ 
     list[n].pageNumber = n+1 
    } 
} 

예를 들어 나는

1, 2, 3, 4, 5, 6

편집 그때로 순서로 할 것인지는을 변경하고자하는 5, 7, 17, 18, 23, 24

이를 정렬합니다 PAGENUMBER의 ASC BY 순서를 할 것인지는 5, 17, 23, 24, 18, 7가있을 수 있습니다 :

@fortheworld MySQL

@ cyberkiwi 업데이트

불분명합니다. peops은 하나의 문이 할 것 SQL 배치를 작성 주장하는 이유는 내 질문에 명확 : 내가 이해하지 않는 모든 당신의 도움

+0

다른 rdbms가 다른 해결책을 제공 할 수 있기 때문에 귀하의 질문이 적절한 경우 - 적절한 태그를 추가하십시오. – zerkms

+0

어떤 SQL 서버 변형을 사용하고 있습니까? MSSQL, MySQL, Postgre? –

+0

업데이트 쿼리가 필요하십니까? 또는 PageNumber 열이 1,2,3 .. N 인 SELECT 쿼리는 현재 그곳에 간격이없는 대신에 간격이 있습니까? 'comic'의 다른 열을 나열하십시오 – RichardTheKiwi

답변

1
SET @I := 0; 

    SELECT *, 
     @I := @I + 1 AS newPageNumber 
    FROM comics 
ORDER BY pageNumber ASC 
0

에 대한 감사가 될 수 있도록 내가 더 배울 필요 같아요.

SELECT comics.*, @n := @n + 1 AS PageNumber2 
FROM (SELECT @n := 0) X CROSS JOIN comics 
ORDER BY pageNumber ASC