我使用FQL从Facebook接收数据。更具体:来自粉丝页面的公共活动的数据。
现在我的查询仅接受具有之前或之前的开始时间的事件。因此,如果时间是15:01且start_time是15:00,则事件不在列表中。这就是我需要帮助的地方。您需要知道的是,并非所有事件都有end_time。所以我要么在那里做if语句或case where子句。
我的原始代码:
SELECT
name, pic, start_time, end_time, location, description, eid, host
FROM
event
WHERE
eid IN ( SELECT eid FROM event_member
WHERE uid = 1
OR uid = 2 )
AND
start_time >= now()
ORDER BY
start_time desc
我试图输入以下代码而不是start_time> = now(),但代码没有用。
CASE
WHEN end_time IS NULL then 'start_time >= now()'
ELSE 'end_time >= now()'
感谢您的帮助。
答案 0 :(得分:0)
FQL不允许使用if语句;但是,我建议更好地解决您的问题是完全忽略end_time并根据start_time范围选择事件。例如,这将在7天前或7天后发生事件:
SELECT
name, pic, start_time, end_time, location, description, eid, host
FROM
event
WHERE
eid IN (
SELECT eid FROM event_member
WHERE uid = 1 OR uid = 2
)
AND
(
start_time >= (now() - (60*60*24*7)) AND
start_time <= (now() + (60*60*24*7))
)
ORDER BY
start_time desc
答案 1 :(得分:0)
我发现FQL中既不允许使用if语句也不允许使用case语句。
我在http://steve.veerman.ca/2012/facebook-api-fql-tutorial/
找到了可用功能,运营商等的列表我的解决方案是从查询中删除以下内容:
AND
start_time >= now()
我还在select语句中添加了now()
,以获取当前时间(尽管我可以在PHP中执行此操作)。