带AND的案例陈述

时间:2012-12-12 13:27:48

标签: php mysql case

我在查询中使用年龄过滤器,我在选择中有多个年龄,如下所示

18岁以下     25岁以下     25-34
    35-44
    45-54
    55-64
    超过65岁

我会从mysql中选择有关年龄的行,如下所示

select * from users where isactive=1 
AND (DateOfBirth > (CURDATE() - INTERVAL  $Age YEAR) OR $Age = 0)

现在我想在年龄段上添加案例陈述,如果$ age变量= 25-34,那么我可以选择相关的

或者任何人都可以告诉我如何在

之类的内容中编写和声明
case $age
when $age='25' AND (DateOfBirth > (CURDATE() - INTERVAL  $Age YEAR) OR $Age = 0)
end case

这是完整查询,我在搜索结果时工作正常,只有年龄过滤器需要上述多个年龄段的case语句 这是查询:

SELECT * FROM user WHERE IsDeleted!=1 AND (IsMale = $Gender OR $Gender = 2)

/// AT THIS POINT I NEED to add multple case to filter it by ages (after gender filter)

1 个答案:

答案 0 :(得分:1)

这应该可以正常工作:

CASE
  WHEN $age ='25' 
       AND 
       (
         ($Age = 0) 
         OR 
         (DateOfBirth > (CURDATE() - INTERVAL  $Age YEAR))
       )
  Then ...
END