Mysql sql循环和集合属性

Mysql sql循环和集合属性,mysql,for-loop,row-number,Mysql,For Loop,Row Number,在SQL中,我想按页码顺序查询列表 SELECT * FROM `comics` WHERE 1 ORDER BY pageNumber ASC 然后,我想根据查询中的索引设置它们的页码,从1开始,而不是从0开始 下面是我所需功能的伪代码;其中list是上面的Select查询的返回值 for(var n:int = 0; n<list.length; n++){ if(list[n].pageNumber != n+1){ list[n].pageNumber

在SQL中,我想按页码顺序查询列表

SELECT * FROM `comics` 
WHERE 1
ORDER BY pageNumber ASC
然后,我想根据查询中的索引设置它们的页码,从1开始,而不是从0开始

下面是我所需功能的伪代码;其中list是上面的Select查询的返回值

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

按页码排序ASC会将其排序为5、7、17、18、23、24

然后我想把页码改成1,2,3,4,5,6

编辑:

@fortheworld MySQL

@数码奇维更新

对不起,我不清楚。我想我需要了解更多,以便我的问题更清楚:
感谢您的帮助

我不明白为什么人们坚持编写SQL批处理,而一条语句就可以了

SET @I := 0;

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

如果您的问题是针对mysql的,请添加适当的标记,因为不同的rdbms可以提供不同的解决方案。您使用的是哪种SQL server变体?MSSQL、MySQL、Postgre?需要更新查询吗?或者只是一个SELECT查询,其列页码显示为1,2,3..N,没有间隙,而不是当前存在的任何内容?请在列表中列出其他列comic@fortheworld:显然是mysql;-看看他的疑问-@虫族-没错,但我以前见过有人在MSSQL中使用backticks。