Цикл SQL и установить свойства - PullRequest
0 голосов
/ 09 февраля 2011

В SQL я хотел бы запросить список, в порядке по номеру страницы

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

Затем я хотел бы установить их pageNumbers на основе их индекса в запросе (начиная с 1 вместо 0).

Вот мой псевдокод для функциональности по желанию; где список - это возвращаемое значение запроса на выборку выше.

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

Например, у меня могут быть номера страниц 5, 17, 23, 24, 18, 7

ORDER BY pageNumber ASC отсортирует это по 5, 7, 17, 18, 23, 24

Затем я хотел бы изменить номера страниц, чтобы они были 1, 2, 3, 4, 5, 6

редактирование:

@ fortheworld MySQL

@ cyberkiwi ОБНОВЛЕНИЕ

извините за неясность. думаю, мне нужно узнать больше, чтобы мои вопросы были понятны :) спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 09 февраля 2011
SET @I := 0;

  SELECT *,
         @I := @I + 1 AS newPageNumber
    FROM comics
ORDER BY pageNumber ASC
0 голосов
/ 09 февраля 2011

Я не понимаю, почему peops настаивает на написании пакета SQL, когда подойдет один оператор.

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