基本上我想要做的是在登录时根据用户状态选择显示的数据,例如,如果用户是试用用户,则选择特定日期范围内的数据,但如果他们是付费用户则选择更大的日期范围。我已经尝试了下面的代码,但它引发了一个错误,说我的语法不正确。任何帮助将不胜感激。
IF (SELECT MemberStatus FROM user WHERE Memberstatus = 'Trial')
THEN
SELECT *
FROM article
WHERE date > '1990/01/01';
ELSE
SELECT *
FROM article
WHERE date > '2000/01/01';
ENDIF;
答案 0 :(得分:1)
您不需要IF。这也是标准的SQL
SELECT *
FROM article
WHERE date >
CASE
WHEN EXISTS (SELECT * FROM user WHERE Memberstatus = 'Trial')
THEN '2000/01/01'
ELSE '1990/01/01'
END;
编辑:根据提问题,用户的SELECT可能不完整
答案 1 :(得分:1)
我认为在一个查询中执行此操作(检查用户状态并根据它选择项目)是错误的。您可能需要在代码中的其他位置使用试用限制或显示试用状态。因此,最好将其存储在用户配置文件或变量的实例中,并构建有关用户状态的查询。