如何解决如果所有结果均相等,则返回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] 举报,一经查实,本站将立刻删除。