我正在尝试为将从数据库返回对象的网站创建过滤器部分。
SELECT *
FROM users
WHERE type = "1"
AND age < 50
AND age > 20
输入此查询时,某些用户可能不想设置类型,只是按年龄过滤?是否有任何类型的通配符我可以传递给查询,所以如果用户没有定义它会返回所有通配符?
类型可以是1,2或3.如果没有传递给它,我希望它返回年龄在20到50岁之间的所有用户,然后是所有类型?
答案 0 :(得分:0)
这可能是两种可能的解决方案,如果你想要年龄介于50和20之间的所有记录,首先很简单。如果type = 1且年龄介于50和20之间,则第二次查询将返回记录,
SELECT *
FROM users
WHERE age BETWEEN 20 AND 50
OR
SELECT * FROM users
WHERE
IF(type == 1)
THEN
type = 1
ELSE
1=1
END IF
AND age BETWEEN 20 AND 50
答案 1 :(得分:0)
SELECT * FROM USERS WHERE AGE BETWEEN 20 AND 50 AND COALESCE(TYPE,'1')=1
答案 2 :(得分:0)
尝试此查询:
select * from table_name where age between 20 and 50 AND type is null