Xorm怎样取数据库中最后10条数据(按照原有顺序)?

菜鸟请教Xorm数据库问题:

我用如下语句可以取到最后10条数据,但是得到的10条数据顺序也随之颠倒了,如何保持原有顺序的情况得到最后10条数据呢?

`engine.Where("user = ?", name).Limit(10,0).Desc("Id").Find(&archive)`

或者,我用上面语句,在程序中怎样用range倒着把数据遍历出来呢?

for _, item := range archive{
...}

谢谢!

共 3 个回复


yinziyang

因为你用了Desc排序了,改成Asc不行么?

engine.Where("user = ?", name).Limit(10,0).Asc("Id").Find(&archive)

# 0

xiaolunwen

var l = len(archive)
for i:=0; i++; i < l {
    fmt.Println(archive[l-i-1])
}
# 1

yue

@yinziyang 我是想取表中最底的10条数据,所以用Desc,如果Asc是取最顶端的10条。

@xiaolunwen ,看来没有一条指令把原顺序最后10条取出来的办法。嗯,你这样遍历比我现在先算表有多少行再去取的方法好,谢谢答复!

# 2