我想用GORM中的外键字段设置where条件,但我不能这样做。
我现在正在处理两种模式。
type Call struct {
ID uint `gorm:"primary_key"`
Status string `gorm:"type:varchar(50)"`
ConditionID uint
Condition Condition
JoinStatus *string `gorm:"type:varchar(50)"`
CreatedAt time.Time
UpdatedAt time.Time
}
type Condition struct {
ID uint `gorm:"primary_key"`
BigLocationID uint
BigLocation Location
ClassID uint
Class *Class
MixStr *string `gorm:"type:text"`
MixClassIDs *string `gorm:"type:varchar(50)"`
SituationIDs *string `gorm:"type:varchar(255)"`
GiftPoint int `gorm:"type:integer;default:0"`
Desired *string `gorm:"type:varchar(255)"`
CreatedAt time.Time
UpdatedAt time.Time
}
我可以进行条件查询并得到它们的列表。
query := fmt.Sprintf("class_id = %d OR mix_class_ids REGEXP ',%d,'", 3, 3)
var conditions []Condition
err := DB.Where(query).Find(&conditions).Error
但那不是我想要的。
我想立刻接到有这种情况的电话。
如果条件的ClassID为3或MixClassID包含“3”,如何获取调用列表?