gorm中有表a,a中有字段id和parentid,如何实现当传入一个id值后搜索parentid值等于传入id值的记录,然后再搜索id值等于当前搜索的parentid的值的记录
时间: 2024-04-30 11:19:16 浏览: 134
可以使用gorm的链式查询方法,将两个查询条件连在一起查询,示例如下:
```
db.Where("parentid = ?", id).First(&result)
db.Where("id = ?", result.parentid).First(&result)
```
其中,`db` 表示gorm的数据库连接对象,`result` 表示查询结果存放的变量,`id` 表示传入的id值。
第一个查询条件是搜索parentid值等于传入id值的记录,通过 `Where` 方法设置查询条件,并通过 `First` 方法取到第一条符合条件的记录。
第二个查询条件是搜索id值等于当前搜索的parentid的值的记录,同样使用 `Where` 方法设置查询条件,并通过 `First` 方法取到第一条符合条件的记录。
将两个查询条件连在一起,就可以实现上述需求。
相关问题
gorm中有表a,a中有字段id和parentid,如何实现当传入一个id值后搜索parentid值等于传入id值的记录
可以使用gorm的链式查询和Where语句来实现,示例如下:
```
db.Where("parentid = ?", id).Find(&records)
```
其中,"parentid = ?"表示查询条件,"? " 会被传入的id值替换,从而找到parentid等于id的记录。Find(&records) 则会把查询结果存入records变量中。
gorm中有表a,表a中有字段status,paytime,怎样实现当status=1时,把当前时间赋给paytime
可以使用gorm的Update()方法,具体代码如下:
```
db.Model(&a).Where("status = ?", 1).Update("paytime", time.Now())
```
其中,&a为表a的结构体对象指针,"status = ?"为筛选条件,问号表示占位符,1将会替换掉它,"paytime"为要更新的字段名,time.Now()为当前时间。这条语句的意思是:查找表a中status等于1的记录,并将它们的paytime字段更新为当前时间。
阅读全文