好的,您可以使用GORM来执行这条SQL语句。假设您的结构体定义如下:
1 | type WealthOrder struct { |
然后,您可以用GORM来查询该字段,代码如下:
1 | var bondBusinessRequestIDs []uint |
这段代码会查询 t_wealth_order 表中的 bondBusinessRequestId 字段,并将结果存储在 bondBusinessRequestIDs 切片中。
如果想要在这个字段为空的时候写入字段,字段有值得时候更新这个字段得gorm语句怎么写?
要在字段为空时插入字段值,字段有值时更新字段值,可以使用 GORM 的 FirstOrCreate 和 Save 方法。假设我们有一个结构体 WealthOrder,包含 BondBusinessRequestID 字段:
1 | type WealthOrder struct { |
接下来,我们可以编写一个函数来执行这个操作:
1 | func UpsertBondBusinessRequestID(db *gorm.DB, id uint, newBondBusinessRequestID uint) error { |
这个函数 UpsertBondBusinessRequestID 接受一个 GORM 的 DB 实例、一个 ID 和一个新的 BondBusinessRequestID,它会根据记录是否存在和字段是否为空来插入或更新字段值。
使用示例:
1 | db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) |
这段代码尝试在 t_wealth_order 表中插入或更新记录,根据 ID 和 BondBusinessRequestID 的值进行相应操作。
能不能直接使用更新来更新就可以了,另外BondBusinessRequestID 应该是string类型,默认应该是null
好的,如果直接使用更新来完成这个操作,并且 BondBusinessRequestID 是 string 类型,默认值为 null,您可以这样编写 GORM 语句:
首先,定义您的结构体:
1 | type WealthOrder struct { |
接下来,编写一个函数来执行更新操作:
1 | func UpdateOrInsertBondBusinessRequestID(db *gorm.DB, id uint, newBondBusinessRequestID string) error { |
这样,您可以在 t_wealth_order 表中查找记录,如果找到且 BondBusinessRequestID 字段为空,则更新该字段。如果未找到记录,则创建新记录。
使用示例:
1 | db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) |
这样,您可以根据需求进行插入或更新操作。
我直接使用db.Model(&order).Update(“BondBusinessRequestId”, newBondBusinessRequestID).Error这样得话,在BondBusinessRequestId为null的时候能成功更新写入吗?
直接使用 db.Model(&order).Update("BondBusinessRequestId", newBondBusinessRequestID).Error 可以在字段为 null 或者已有值的情况下更新字段。具体来说,这个语句会直接更新指定字段的值,无论它当前是 null 还是其他值。
如果您只希望在 BondBusinessRequestId 为 null 时更新该字段,可以先查询并检查该字段的值,然后根据条件进行更新:
1 | func UpdateBondBusinessRequestIDIfNull(db *gorm.DB, id uint, newBondBusinessRequestID string) error { |
使用示例:
1 | db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{}) |
这样,只有在 BondBusinessRequestID 字段为 null 的情况下才会进行更新操作。
使用gorm从数据库里面查出来一个字符串类型的值,怎么判断这个值在数据库里面是不是null,如果是null的话查出来的字符串的这个值是空字符串嘛?
在 GORM 中,从数据库中查询出的字符串类型的值如果为 NULL,在 Go 中会被表示为空字符串 ("")。您可以通过检查字符串是否为空来判断该值是否在数据库中为 NULL。
举个例子,假设您有如下的结构体:
1 | type WealthOrder struct { |
然后,您从数据库中查询一个记录:
1 | var order WealthOrder |
接下来,您可以通过检查 order.BondBusinessRequestID 是否为空字符串来判断该值在数据库中是否为 NULL:
1 | if order.BondBusinessRequestID == "" { |
如果 BondBusinessRequestID 在数据库中为 NULL,那么 order.BondBusinessRequestID 的值会是空字符串 ("")。如果该字段有值,则 order.BondBusinessRequestID 会包含该值。