猿问

将查询中的位置分开

我需要分开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%'

谢谢!


米琪卡哇伊
浏览 179回答 1
1回答

慕姐4208626

我相信这应该有效: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返回一个结果,这是可链接的。这意味着你可以继续调用它的方法,直到你得到你喜欢的东西。
随时随地看视频慕课网APP

相关分类

Go
我要回答