GORM关于主键搜索问题

1. 运行环境

GORM关于主键搜索问题

GORM关于主键搜索问题

2. 问题描述?

GORM关于主键搜多问题:
为什么db.First(&Pro, 3),显示的pro.id还是1,而不是3
GORM关于主键搜索问题
GORM关于主键搜索问题
GORM关于主键搜索问题
GORM关于主键搜索问题

3. 您期望得到的结果?

希望有大佬能解释一下原因
我的理解是当我第一个命令后,我指针的值就被赋值第一行数据库的内容,当我第二次有条件的命令后,会去覆盖第一行内容,不知道我的理解对不对

4. 您实际得到的结果?

Junwind
最佳答案

file 通过你的执行结果来看,第二次执行,没有找到任何符合的数据,所以 db.First(&Pro, 3) 并没有被赋值过,所以还是1,可以检查一下sql。

9个月前 评论
weekong (楼主) 9个月前
Junwind (作者) 9个月前
LOST 9个月前
讨论数量: 8
Junwind

file 通过你的执行结果来看,第二次执行,没有找到任何符合的数据,所以 db.First(&Pro, 3) 并没有被赋值过,所以还是1,可以检查一下sql。

9个月前 评论
weekong (楼主) 9个月前
Junwind (作者) 9个月前
LOST 9个月前

实际执行的语句就是 where id = 3 AND id = 1 大佬我想问问,这样子是因为出错了,所以他显示的还是为1 ,对吗

9个月前 评论
Junwind 9个月前
weekong (作者) (楼主) 9个月前

我感觉是一开始空结构体相当于没有条件的查询,结构保存到结构体中,后面再用这个结构体进行查询,就相当于用结构体中的id字段当作查询条件,所以会有id=1 and id=3,然后就查不出结果来。gorm.io/docs/query.html#Retrieving...,这里提到了first的行为,当目标结果体有主键的时候,会使用主键作为查询条件。

3周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!