可以,SQL 层面可以直接截取 body 字段的前 N 个字符,避免拉取全部内容再截断。 不同数据库有不同的字符串截取函数:
MySQL 用 LEFT(body, 200)
PostgreSQL 用 SUBSTRING(body FROM 1 FOR 200)
golang
sql := fmt.Sprintf(`
SELECT
id,
title,
LEFT(body, 300) AS body,
created_time,
last_mod_ti