在 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 子句。




