在 Golang 中使用 GORM 进行数据库操作时,可以使用结构体来进行表的映射和数据的存取。如果需要根据表的字段值不同来查询不同的表,可以使用 GORM 的条件语句来实现。

例如,有两个表 A 和 B,它们分别有一个字段 'type',值分别为 1 和 2。现在需要根据 'type' 的值来查询不同的表,可以使用以下代码:

 type A struct {
     ID   int
     Type int
     Name string
 }

 type B struct {
     ID   int
     Type int
     Age  int
 }

 var result interface{}

 if typeValue == 1 {
     db.Table('A').Where('type = ?', typeValue).Find(&result)
 } else if typeValue == 2 {
     db.Table('B').Where('type = ?', typeValue).Find(&result)
 }

在以上代码中,首先定义了结构体 A 和 B 来映射表的字段,然后根据 'type' 的值来判断查询哪个表,并使用 GORM 的 Table 和 Where 方法进行条件查询。查询结果会存放在 result 变量中。

需要注意的是,使用 Table 方法时需要传入表的名称,而不是结构体的名称。

Golang GORM 使用结构体根据字段值查询不同表

原文地址: https://www.cveoy.top/t/topic/lCEA 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录