在postgresql中查询给定值的多个列
我的数据库中有一个表(postgres) 表1 我现在得到了一个ID列表。其中一些id属于id_b,一些属于id_c,依此类推,直到id_f为止。 对于这些id列表,我需要找到相应的id_a 方法#1 识别哪些id属于id_b、id_c等。 然后在mysql查询中使用multiple-in子句获取id\u a在postgresql中查询给定值的多个列,sql,postgresql,select,postgres,Sql,Postgresql,Select,Postgres,我的数据库中有一个表(postgres) 表1 我现在得到了一个ID列表。其中一些id属于id_b,一些属于id_c,依此类推,直到id_f为止。 对于这些id列表,我需要找到相应的id_a 方法#1 识别哪些id属于id_b、id_c等。 然后在mysql查询中使用multiple-in子句获取id\u a select id_a from Table #1 t1 where t1.id_b in () or t1.id_c in ().... or t1.id_f in (); 我正在寻找
select id_a from Table #1 t1 where t1.id_b in () or t1.id_c in ().... or t1.id_f in ();
我正在寻找另一种方法
方法#2
是否有某种方法可以同时查询给定值的所有列。差不多
select id_a from Table #1 t1 where t1.id_b,t1.id_c,..t1.id_f in ();
在中,可以使用数组重叠,和&
,运算符:
SELECT id_a
FROM mytable
WHERE ARRAY[id_b, id_c, id_d, id_e, id_f] && ARRAY[value1, value2, ...]
你可以用union
select * from t where id_a in (
select * from
(select id_b from t union
select id_c from t union
select id_d from t union
select id_e from t union
select id_f from t
) as t1
)
是的,你可以这样做
SELECT columnA FROM tableA WHERE (columnA, columnB, columnC)::text IN ('TEST', 'TEST2');
演员阵容
::text
可能是必需的我正在使用postgresql(columnA,columnB,columnC)::text
将这些列组合在一起,这样您的输出看起来像valueA,valueB,valueC
如果您想让这项工作正常,它需要像(“%TEST%”)一样不确定性能与其他解决方案的对比
SELECT columnA FROM tableA WHERE (columnA, columnB, columnC)::text IN ('TEST', 'TEST2');