在 GORM 中,可以使用 Where
方法和 In
方法来实现类似 SQL 中的 WHERE a IN ('y', 'x')
的过滤操作。假设需要同时过滤多个名为 field1
和 field2
的字符串类型字段,代码示例如下:
db.Where("field1 IN (?) AND field2 IN (?)", []string{"y", "x"}, []string{"y", "z"}).Find(&results)
其中,第一个参数 "field1 IN (?) AND field2 IN (?)"
表示两个条件都要满足;第二个参数 []string{"y", "x"}
表示在 field1
字段中查找 'y'
或 'x'
;第三个参数 []string{"y", "z"}
表示在 field2
字段中查找 'y'
或 'z'
。
注意,IN
操作符后面的参数必须是一个切片。如果要同时过滤多个不同类型的字段,可以将它们分别作为参数传递给 Where
方法,然后在 SQL 语句中使用多个 IN
子句。