嗨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,否则我需要选择该行。是否可以在单个查询中检索它?
答案 0 :(得分: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;