go-zero icon indicating copy to clipboard operation
go-zero copied to clipboard

QueryRowsPartial: assembly variables in the list?

Open wuyazi opened this issue 1 year ago • 1 comments

type User struct {
	UserId            int64  `db:"user_id"`
	Nickname      string `db:"nickname"`
	Introduction  string `db:"introduction"`
}
user := User{}
DB.QueryRowPartial(&user, sqlGetUserNicknameByUserId, userId)
DB.QueryRowPartial(&user, sqlGetUserIntroductionByUserId, userId)

这样会拼装好 user 没有问题

users := make([]User, 0)
DB.QueryRowsPartial(&users, sqlGetUserNicknamesByUserIds, userIds)
DB.QueryRowsPartial(&users, sqlGetUserIntroductionsByUserIds, userIds)

这样会返回一个列表,前一半有 nickname,后一半有 introduction,与期望的不符,期望返回的列表的数据是完整的


可否提供一个函数,比如 QueryRowsRowPartial,实现返回一个拼装好 nickname 和 introduction 的列表 使用场景:introduction 这种字段是 text 类型,会单独建表存储,但是和 user 属于同一个模型,还有重构业务时,新的模型可能是从多个表里获取的 大致想法:查询 introduction 时,将结果存到一个 map 里,key 是 select 的第一个字段(user_id),value 是查询结果(user_id,introduction),然后根据 key 找到列表里的对应记录,将 value 拼到对象里,拼装逻辑可以和 QueryRowPartial 一样

wuyazi avatar Jul 27 '22 10:07 wuyazi

Partial means only some columns are returned.

kevwan avatar Jul 27 '22 15:07 kevwan

This issue is stale because it has been open for 30 days with no activity.

github-actions[bot] avatar Jul 28 '23 01:07 github-actions[bot]

This issue was closed because it has been inactive for 14 days since being marked as stale.

github-actions[bot] avatar Mar 20 '24 01:03 github-actions[bot]