ZBLOG

gorm where查询,如果字段等于默认值,就不会在sql中出现这个where条件,为什么?

这是因为GORM默认会将零值和空值视为忽略的条件,不会生成WHERE子句。在Go语言中,数字类型的零值为0,字符串类型的零值为空字符串”“,布尔类型的零值为false,而时间类型的零值为”0001-01-01 00:00:00 +0000 UTC”。

例如,如果你要查询一个字段名为age且其默认值为0的表中所有年龄大于20岁的记录,则可以这样写:

  1. db.Where("age > ?", 20).Find(&users)

这条语句会将符合条件的记录查询出来,并且不会包含age等于0的记录。如果你希望查询出所有年龄大于等于20岁的记录(包括年龄等于0的记录),则可以使用以下语句:

  1. db.Where("age >= ?", 20).Find(&users)

这样就可以将所有年龄大于等于20岁的记录都查询出来了。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2791

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?