1 回答
TA贡献1801条经验 获得超16个赞
您IN在WHERE子句中使用运算符来检查值是否与值列表中的任何值匹配。
IN需要一个明确的值列表(或子查询)。
我为您的案例创建了一个示例场景,如下所示:
contributors := []int{20, 25, 27}
var tmp []string
for _, v := range contributors {
tmp = append(tmp, fmt.Sprint(v))
}
query := "SELECT * from table_name where contributors in (" + strings.Join(tmp, ",") + ")"
或者
ANY
适用于数组。如果数组中已有值列表,这将很有用。
使用ANY
运算符,您只能搜索一个值。
select * from table_name where value = ANY(contributors);
如果要搜索多个值,可以使用@>
运算符。
@>
是“包含”运算符。
为几种数据类型定义如下:
数组:http ://www.postgresql.org/docs/current/static/functions-array.html
范围类型:http ://www.postgresql.org/docs/current/static/functions-range.html
几何类型:http ://www.postgresql.org/docs/current/static/functions-geometry.html
JSON(和 JSONB):http ://www.postgresql.org/docs/current/static/functions-json.html
- 1 回答
- 0 关注
- 131 浏览
添加回答
举报