如何使用分组的OR建立WHERE查询

时间:2018-11-08 17:56:46

标签: mysql go go-gorm

目标:使用golang库GORM.io,尝试生成WHERE子句(以编程方式 ),其中(可能有多个)“ OR”子句分组在一起。 >

示例:

SELECT * FROM ... WHERE (x = 'one') OR (y = 'two') OR (z = 'three')

SELECT * FROM ... WHERE (x = 'one' AND (y = 'two' OR z = 'three'))

我有...

  • 从头到尾阅读GORM文档
  • 查看了GORM源代码;并尝试使用Scopes(),SubQuery()和Expr()进行此操作以仅提取(GORM内部称为“搜索”字段的内容)并自动生成SQL字符串
  • 寻找堆栈溢出的深度以获得答案
  • 考虑放弃并成为新西兰的牧羊人

最近的尝试以及我如何思考这样的问题将得到解决......

q := gorm.DB
q.Where(`x=?`, `one`).Where(
  gorm.<NewScopeMaybe?).Or(`y=?`, `two`).Or(`z=?`,`three`).Expr()
)

如果有什么见识的人,我不会给您买啤酒,但我会拒绝您的回答,并告诉我的妈妈注册堆栈溢出,以便她也可以对您的回答进行投票。

0 个答案:

没有答案