我正在使用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
}
我该怎么做呢?
您想要的是使用Select
或Raw
在帖子的正文上运行substr
sqlite函数。
:
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
,以便扫描到您的模型可以像以前一样工作。