【问题标题】:Using operator IN with GORM GO / GOLANG在 GORM GO / GOLANG 中使用运算符 IN
【发布时间】:2020-10-15 04:39:06
【问题描述】:

我正在尝试在 GORM 中执行下一个查询。

SELECT * FROM PAINTINGS WHERE in_stock IN (TRUE, FALSE)

*in_stock 是布尔值。我知道只有两种类型,但我需要根据用户是否选中两个框进行过滤。在这种情况下,用户检查了第一个而不是第二个。

我在文档(https://gorm.io/docs/query.html 条件/字符串条件/IN)中找到了一种方法:

GetDB().Where("in_stock IN ?", []bool{true, false}).Find(&paintings)

...但它不检索信息。结果显示一个空数组。

还有其他方法可以在 GORM 中使用“IN”吗?

附加信息:

去 1.15.2

数据库mysql

【问题讨论】:

  • 您是否检查了使用Debug() 在日志中执行的查询?
  • @Eklavya 是的,它表明语法有错误。
  • @luisfa19,解决了吗?

标签: go go-gorm


【解决方案1】:

所以,我找到了在 gorm-GO 中使用 IN 的方法。

它只需要执行没有args的where作为接口。所以我只是执行了嵌入输入参数的查询界面并删除了'?'

代码如下:

s := "in_stock IN (true, false)"
GetDB().Where(s).Find(&paintings)

*我认为这不是一个好习惯,但它确实有效。

【讨论】:

    猜你喜欢
    • 2015-01-11
    • 2016-04-23
    • 2020-11-05
    • 2023-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多