微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果所有结果均相等,则返回true

如何解决如果所有结果均相等,则返回true

我有一个简单的选择,它返回一个列:

结果:{1,1,2}

我想检查所有结果是否均为1,然后返回true,如果一列中有2,则返回false。

尝试过类似的事情:

SELECT IF(items.status=1,'true','false') AS result
FROM bd.items 
WHERE items.id=33

但是显然,如果值为1,则返回true;如果值为2,则返回false,而不只是一个结果。

例如:

{1,1} = true

{1,2,1} = false

{1} = true

{2} = false

解决方法

这是您想要的吗?

select min(status = 1) as result
from bd.items
where id = 33

当且仅当所有行都有1 status时,此方法返回1。如果该列中还有其他值(非null),则返回0

如果一次要所有商品都使用该商品:

select id,min(status = 1) as result
from bd.items
group by id
,

请尝试以下查询:

select 
case 
when (max(items.status)=min(items.status) and min(items.status)=1) 
then 'True' else 'False' end
from items
where items.id=33
group by id
,

您可以使用下一种方法:

select 
    id,count(status) = count(case when status=1 then 1 end) status
from items
group by id
;

当统计所有行等于状态为1的行时,查询返回true

这和其他几个查询here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。