0

为什么我的第一个查询为 null 而不是第二个?我知道该文件具有该值,我还包括了解释结果,希望对您有所帮助。如果有人可以建议我如何以比使用案例更好的方式执行此操作以及何时将多个值组合成一个 1 也会有所帮助,这里仅从城市开始,但我计划将城市、城镇、村庄组合成 woohoo

谢谢

        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
4

1 回答 1

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 ;
于 2013-10-04T12:37:04.130 回答