0

您好 mysql 查询中是否有返回 NULL 的选项是数据库中不存在这样的行,否则返回行数据。这是我的查询

SELECT DISTINCT estimateResourceMthObj
       FROM EstimateResourceMth estimateResourceMthObj 
       WHERE estimateResourceMthObj.estimateResource.id IN 
            (
                    SELECT estimateResourceObj.id 
                    FROM EstimateResource estimateResourceObj
                    WHERE estimateResourceObj.estimateSub.id = 7 
            ) 
       AND estimateResourceMthObj.monthOrder >= 0 
       AND estimateResourceMthObj.monthOrder <  7;

如果不存在这样的行,我需要返回此查询的结果 null 否则我需要选择该行。是否可以在单个查询中检索它?

4

1 回答 1

0

作为一个棘手的解决方案,UNION SELECT NULL LIMIT 0,1如果您希望只有一行,您可以添加到最后,如您指定的那样。所以结果总是有一个值 -NULL如果表中没有匹配项,estimateResourceMthObj如果有。

 SELECT DISTINCT estimateResourceMthObj
       FROM EstimateResourceMth estimateResourceMthObj 
       WHERE estimateResourceMthObj.estimateResource.id IN 
            (
                    SELECT estimateResourceObj.id 
                    FROM EstimateResource estimateResourceObj
                    WHERE estimateResourceObj.estimateSub.id = 7 
            ) 
       AND estimateResourceMthObj.monthOrder >= 0 
       AND estimateResourceMthObj.monthOrder <  7
UNION
 SELECT NULL
LIMIT 0,1;
于 2012-07-21T12:32:00.363 回答