为了账号安全,请及时绑定邮箱和手机立即绑定

将查询中的位置分开

将查询中的位置分开

Go
米琪卡哇伊 2021-12-27 15:56:26
我需要分开where来验证有条件的值,例如email := "test@test.com"if email != "" {  db.Where("users.email LIKE ?", "%"+email+"%")}db.Where("users.name like ?", "%"+jhon+"%").Find(&users)这将返回两个查询:1: SELECT "users".* FROM "users" WHERE users.email LIKE '%test@test.com%'2: SELECT "users".* FROM "users" WHERE users.name LIKE '%jhon%'但我只需要一个查询的结果: SELECT "users".* FROM "users" WHERE users.email LIKE '%test@test.com%' and users.name LIKE '%jhon%'谢谢!
查看完整描述

1 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

我相信这应该有效:


chain := db.Where("users.name like ?", "%"+jhon+"%")

email := "test@test.com"

if email != "" {

  chain = chain.Where("users.email LIKE ?", "%"+email+"%")

}

chain.Find(&users)

所有的 Gorm 方法都像Where返回一个结果,这是可链接的。这意味着你可以继续调用它的方法,直到你得到你喜欢的东西。


查看完整回答
反对 回复 2021-12-27
  • 1 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信