SQLboiler not in子句

时间:2019-06-09 22:09:54

标签: sql go orm

我正在尝试遵循sqlboiler(https://github.com/volatiletech/sqlboiler)中的示例。但是,我找不到一种等效于NOT IN查询的方法。

users, err := models.Users(
  Select("id", "name"),
  Where("age > ?", 30),
  AndIn("c.kind in ?", "visa", "mastercard"),
).All(ctx, db)

在此示例中,如果我们可以进行操作AndNotIn,那就太好了。

谢谢!

3 个答案:

答案 0 :(得分:3)

我在当前版本的SQLBoiler生成的代码中看到.ipa

好像是在July 3rd, 2020上添加的。

答案 1 :(得分:0)

使用qm.WhereIn("c.kind not in ?", "visa", "mastercard")

或更通用的格式qm.WhereIn("someColumeName not in ?", values...)

请注意,values应该已经转换为[]interface{}

答案 2 :(得分:0)

请使用此

users, err := models.Users(qm.Select("id","name"),qm.Where("age > ?",30),model.UsersWhere.Kind.NIN([]string{"visa","mastercard"})).All(context.Background(),db)
if err != nil {
    fmt.Println("error is -- ",err)
}
resp, _ := json.Marshal(users)
fmt.Println("result ",bytes.NewBuffer(resp))

其中导入的软件包qm是-

“ github.com/volatiletech/sqlboiler/v4/queries/qm”