我在查询中使用年龄过滤器,我在选择中有多个年龄,如下所示
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)
答案 0 :(得分:1)
这应该可以正常工作:
CASE
WHEN $age ='25'
AND
(
($Age = 0)
OR
(DateOfBirth > (CURDATE() - INTERVAL $Age YEAR))
)
Then ...
END