如何将此子查询修改为更具体

时间:2014-09-06 05:07:18

标签: mysql sql subquery

几个星期前,我对同一个问题提出了一个问题并得到了很好的答复,可以在这里查看:A better way to modify this query so the subquery will be more specific?

它运作良好,但后来遇到了另一个请求,现在看起来更加困难。广告区域应允许多种尺寸。例如,某个名称为“b”的区域应该能够允许728x90广告或300x250广告。如果我尝试通过两次添加两个不同大小的区域来修改子查询,那么:

select 'b' as zone_name, 728 as width union all
select 'b' as zone_name, 300 as width 

然后数据库将返回它们,这是不好的。我不能使用宽度可以是728或更小的条件,因为那样可能会返回一个468x60的广告,这也不好。

理论上,一个解决方案

select 'b' as zone_name, (728 or 300) as width union all

将是一个理想的选择。但我认为这种行为无法模拟。

任何想法都赞赏。

1 个答案:

答案 0 :(得分:0)

你可以尝试:

select b as name, case when b = 728 then '728' else '300' end as width