为什么我为第一个查询而不是第二个查询获取null?我知道该文件具有该值,我还包括解释结果,希望它有所帮助。如果我可以建议如何以比使用案例更好的方式做到这一点,并且何时将多个值组合成1,这也是有帮助的,这里仅从城市开始,但我计划将城市,城镇,村庄组合成哇哇
感谢
select filename,(case when road like '%city%' then 'woohoo' end) as x
from files,metadata where files.id = metadata.id and
filename like '%ABC%'
group by filename ;
select filename,(case when road like '%city%' then 'woohoo' end) as x
from files,metadata where
filename like '%ABC%'
group by filename ;
1 SIMPLE files index PRIMARY filename_idx 767 313728 Using where; Using index
1 SIMPLE metadata ref MetaData$id_FK etaData$id_FK 4 schema.files.id 1
1 SIMPLE metadata ALL 315423 Using temporary; Using filesort
1 SIMPLE files index filename_idx 767 313728 Using where; Using index; Using join buffer
答案 0 :(得分:1)
您的过滤器可能没有返回任何结果,files.id = visionmetadata.id
如果您使用了非弃用的连接语法,您会发现它更容易。 您的查询现在:
select filename,(case when road like '%city%' then 'woohoo' end) as x
from files inner join metadata on files.id = metadata.id
where
filename like '%ABC%'
group by filename ;