gpt4 book ai didi

go - 选择从最旧到最新的N个最新项目

转载 作者:行者123 更新时间:2023-12-03 10:10:27 26 4
gpt4 key购买 nike

我正在尝试使用以下实体按创建日期选择最新消息。

type Message struct {
ID uuid.UUID `gorm:"primaryKey;type:uuid;not null" json:"id"`
CreatedAt time.Time `json:"createdAt"`
Content string `json:"content"`
Room *Room `json:"room,omitempty"`
RoomID uuid.UUID `gorm:"type:uuid;not null" json:"-"`
User *User `json:"author,omitempty"`
UserID uuid.UUID `gorm:"type:uuid;not null" json:"-"`
}
我提出了以下查询:
var messages []entity.Message

// get latest 10 items
// newest by date will be at the top
if err := r.db.
Where(&entity.Message{RoomID: room.ID}).
Order("created_at DESC").
Limit(10).
Preload("User").
Find(&messages).Error; err != nil {
return nil, err
}
我们按创建日期的降序检索最新的10条消息。问题是在那之后我需要颠倒顺序。
我们如何递增结果的顺序? (最后一条消息应在末尾)

最佳答案

使用子查询很不错,但是在检索 slice 之后简单地反转 slice 呢? 🤯

for i, j := 0, len(messages)-1; i < j; i++, j--) {
messages[i], messages[j] = messages[j], messages[i]
}

关于go - 选择从最旧到最新的N个最新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66063886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com