Mysql sql循环和集合属性
在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
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。