我有一个带整数数组列的表。我想选择包含给定列表中至少一个int值的所有行。
E.g。
template<class K, class D>
typename AVL<K, D>::tree_node* AVL<K, D>::Select(tree_node* p, int r,
int *sum) {
if (!p)
return NULL;
if (r == 0) {
*sum += p->getSub();
return p;
}
if (p->left) {
if (p->left->getW() == r - 1) {
*sum = *sum + p->getSub() - p->left->getSub() - p->Key();
return p;
}
if (p->left->getW() > r - 1) {
*sum = *sum + p->getSub() - p->left->getSub();
return Select(p->left, r, sum);
}
return Select(p->right, r - p->left->getW() - 1, sum);
}
return Select(p->right, r - 1, sum);
返回columnarray包含111的所有行。
现在我想要选择columnarray包含111或/和222的所有行。像
这样的东西SELECT * FROM table where (111) = ANY (columarray)
不起作用。它返回错误
错误:错误:运算符不存在:record = integer 提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。 位置:45 SQLState:42883 ErrorCode:0
答案 0 :(得分:4)
您可以使用数组重叠运算符:
SELECT *
FROM table
WHERE ARRAY[111, 222] && columnarray;