假设我有下表:
id column_a column_b column_c
1 t f t
2 t f f
3 f t f
从上表中,我想:
select rows from id = 1,2;
结果应为:
column_a column_b column_c
t f t
如果定义的id中的任何行对于特定列具有true,我们假设结果为真。
答案 0 :(得分:5)
使用聚合函数bool_or()
。
SELECT bool_or(column_a) AS column_a
, bool_or(column_b) AS column_b
, bool_or(column_c) AS column_c
FROM tbl
WHERE id IN (1,2);
手册:
如果至少有一个输入值为true,则为true,否则为false
答案 1 :(得分:0)
bool_or(...)
绝对是你最好的朋友。
要记住哪一个手册没有提及,只需要记住一件事:如果提供给bool_or
的所有值都是null
,那么结果也会是null
。