kal*_*elc 3 postgresql go where-clause go-gorm
我需要分开where以使用条件验证示例的值
email := "test@test.com"
if email != "" {
db.Where("users.email LIKE ?", "%"+email+"%")
}
db.Where("users.name like ?", "%"+jhon+"%").Find(&users)
Run Code Online (Sandbox Code Playgroud)
返回两个查询:
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%'
Run Code Online (Sandbox Code Playgroud)
谢谢!
我相信这应该有效:
chain := db.Where("users.name like ?", "%"+jhon+"%")
email := "test@test.com"
if email != "" {
chain = chain.Where("users.email LIKE ?", "%"+email+"%")
}
chain.Find(&users)
Run Code Online (Sandbox Code Playgroud)
所有类似Gorm的方法都Where返回可链接的结果。这意味着您可以继续在其上调用方法,直到获得所需的东西。
| 归档时间: |
|
| 查看次数: |
699 次 |
| 最近记录: |