在SQL中,我想按pageNumber
的顺序查询列表SELECT * FROM `comics`
WHERE 1
ORDER BY pageNumber ASC
然后,我想根据查询中的索引设置pageNumbers(从1开始而不是0)。
这是我想要的功能的伪代码;其中list是上面选择查询的返回值。
for(var n:int = 0; n<list.length; n++){
if(list[n].pageNumber != n+1){
list[n].pageNumber = n+1
}
}
例如,我可能有pageNumbers 5, 17, 23, 24, 18, 7
ORDER BY pageNumber ASC会将其排序为5, 7, 17, 18, 23, 24
然后我想改变pageNumbers以便成为1, 2, 3, 4, 5, 6
编辑:
@fortheworld MySQL
@cyberkiwi UPDATE
抱歉不清楚。我想我需要了解更多我的问题要清楚:) 谢谢你的帮助答案 0 :(得分:1)
SET @I := 0;
SELECT *,
@I := @I + 1 AS newPageNumber
FROM comics
ORDER BY pageNumber ASC
答案 1 :(得分:0)
我不明白为什么peops坚持在单个语句执行时编写SQL批处理。
SELECT comics.*, @n := @n + 1 AS PageNumber2
FROM (SELECT @n := 0) X CROSS JOIN comics
ORDER BY pageNumber ASC