如何使用gorm从字符串中获取特定数量的字符?



我正在使用SQLite,如果我有一个文本帖子或文章是一个400个字符串,例如,我想只提取前100个字符从它在前端使用。

在第4行中,我从数据库中提取了最近的5个帖子,但我想将帖子的主体限制为仅前100个字符

func GetLatestPosts() *[]Post {
db := database.Connect()
var posts []Post
db.Limit(5).Order("created_at desc").Find(&posts)
// SELECT LEFT(body, 100) FROM posts
// db.Raw("SELECT id, title, body, tags FROM posts").Scan(&posts)
return &posts
}

我该怎么做呢?

您想要的是使用SelectRaw在帖子的正文上运行substrsqlite函数。

:

err := db.Select("id, title, substr(body, 1, 100) AS body, tags").
Limit(5).
Order("created_at DESC").
Find(&posts).
Error
// error check

或with Raw:

err := db.Raw("SELECT id, title, substr(body, 1, 100) AS body, tags FROM posts").
Scan(&posts).
Error
// error check
要记住的关键方面是确保将列命名为body,以便扫描到您的模型可以像以前一样工作。

相关内容

  • 没有找到相关文章

最新更新