You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言使用GORM时如何排除字段不参与SELECT查询?

如何让GORM查询时忽略特定字段但保留JSON序列化

你可以给Inventory字段添加-:select的GORM标签,结合现有的-:migration标签,就能实现仅排除该字段的查询操作,同时保留JSON序列化功能。

修改后的结构体定义如下:

type Product struct {
   ID        int     `gorm:"primaryKey" json:"id"`
   Name      string  `gorm:"notNull;size:125" json:"name"`
   Inventory int     `gorm:"-:migration;-:select" json:"inventory"`
}

标签说明

  • -:migration:保持原有作用,确保该字段不会被GORM的迁移工具创建到products数据表中
  • -:select:告诉GORM在生成SELECT查询语句时,自动忽略这个字段,避免出现Unknown column 'Product.inventory' in 'field list'的错误
  • json:"inventory":不受GORM标签影响,依然可以正常完成JSON的序列化与反序列化

问题原因说明

之前的报错是因为-:migration仅控制数据库迁移阶段的行为,GORM在执行查询时默认会包含结构体中的所有字段。添加-:select标签后,GORM会在构造SELECT语句时主动排除该字段,同时不会干扰字段的其他功能。

内容的提问来源于stack exchange,提问作者Bens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:20:36