Mysql 如果。。。语句满足两个条件

Mysql 如果。。。语句满足两个条件,mysql,Mysql,我有一个带有布尔值的表,我想知道一组id是否同时具有这两个值 此sql选择要测试的产品组: SELECT cp.ItemID, cp.IsUnitsOfMeasure from grouped_products gp LEFT JOIN products p ON p.product_id = gp.product_id LEFT JOIN c_products cp ON cp.ItemID = p.product_id WHERE gp.group_id=123 我想了解组的cp

我有一个带有布尔值的表,我想知道一组id是否同时具有这两个值

此sql选择要测试的产品组:

SELECT 
  cp.ItemID,
  cp.IsUnitsOfMeasure
from grouped_products gp
LEFT JOIN products p ON p.product_id = gp.product_id
LEFT JOIN c_products cp ON cp.ItemID = p.product_id
WHERE gp.group_id=123
我想了解组的cp.IsUnitsOfMeasure是否同时包含1和0。

请尝试以下操作:

SELECT 
    cp.ItemID,
    SUM(cp.IsUnitsOfMeasure) AS sum,
    COUNT(cp.IsUnitsOfMeasure) AS count,
    from grouped_products gp
LEFT JOIN products p ON p.product_id = gp.product_id
LEFT JOIN c_products cp ON cp.ItemID = p.product_id
WHERE gp.group_id=123
  • 如果
    sum
    等于
    count
    ,则所有行均为1
  • 如果
    sum
    等于0,则所有行均为0
  • 在所有其他情况下:组中同时有1和0

包含两个
将分别为
TRUE
FALSE
,以指示每个组是否同时包含一个
c_产品
和另一个
=1
,谢谢,这个答案实际上对我更有用,尽管另一个答案更符合我的实际要求。
SELECT   gp.group_id,
         SUM(cp.IsUnitsOfMeasure=0) AND SUM(cp.IsUnitsOfMeasure=1) AS ContainsBoth,
FROM     grouped_products AS gp
  LEFT JOIN products      AS  p USING (product_id)
  LEFT JOIN c_products    AS cp ON cp.ItemID = p.product_id
GROUP BY gp.group_id