我有一个包含2个字段的POSTGRES字段 - 整数数组字段和整数字段。
CREATE TABLE test.public.polls (
"id" serial NOT NULL,
field_1 _int4,
field_2 int4 NOT NULL,
PRIMARY KEY ("id")
);
,值为
1)现在我需要检查字段值{1,2,3}
是否在field_1中
这样的事情 -
select * from test.public.polls
where field_1 = ANY ('{1,2,3}'::int[])
但这会引发错误
operator does not exist: integer[] = integer
2)需要检查是否有任何id值= {2,3,4}在field_1
中select * from test.public.polls
where field_1 = array(id)
不确定应该是什么语法。
答案 0 :(得分:2)
答案 1 :(得分:1)
由于您的#include <iostream>
using namespace std;
bool increasing(int arr[], int n);
int main()
{
int arr[20], n;
cout << "Enter a set of Increasing/Decreasing numbers (ex. 1 2 3 6 5 4 7 8 9 3 2 1)." << endl;
cout << "Press 'Enter' to see results" << endl;
while (cin >> n)
{
for (int i = 0; i <= n; i++)
{
cin >> arr[i];
}
cout << (increasing(arr, n) ? "increasing" : "decreasing") << endl;
}
return 0;
}
bool increasing(int arr[], int n)
{
int x = 0;
for (int i = 0; i < n - 1; i++)
{
if (arr[i] < arr[i + 1])
{
x++;
}
}
if (x == n - 1)
{
return true;
}
else
{
return false;
}
}
似乎是一个数组,因此后续工作应该有效(这称为overlapping):
field_1
对于第二部分,您似乎希望汇总select *
from yourtable
where field_1 && '{1,2,3}'::int[]
列并检查id
中是否存在聚合集中的任何值:
field_1