Facebook FQL where子句中的If语句或大小写
我正在使用FQL从Facebook接收数据。更具体:来自粉丝页面的公共事件数据 现在,我的查询只接受开始时间早于或等于现在的事件。因此,如果时间是15:01,开始时间是15:00,则事件不在列表中。那就是我需要帮助的地方。你需要知道的是,并非所有事件都有结束时间。所以我要么做一个if语句,要么在where子句中做一个case 我的原始代码:Facebook FQL where子句中的If语句或大小写,facebook,if-statement,facebook-fql,case,where-clause,Facebook,If Statement,Facebook Fql,Case,Where Clause,我正在使用FQL从Facebook接收数据。更具体:来自粉丝页面的公共事件数据 现在,我的查询只接受开始时间早于或等于现在的事件。因此,如果时间是15:01,开始时间是15:00,则事件不在列表中。那就是我需要帮助的地方。你需要知道的是,并非所有事件都有结束时间。所以我要么做一个if语句,要么在where子句中做一个case 我的原始代码: SELECT name, pic, start_time, end_time, location, description, eid, ho
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
我尝试输入以下代码,而不是现在就开始,但代码不起作用
CASE
WHEN end_time IS NULL then 'start_time >= now()'
ELSE 'end_time >= now()'
感谢您的帮助。FQL不允许if语句;但是,我建议您的问题的更好解决方案是完全忽略结束时间,并根据开始时间范围选择事件。例如,这将给出发生在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
我发现FQL中既不允许if语句也不允许case语句 我在上找到了可用函数、运算符等的列表 我的解决方案是从查询中删除以下内容:
AND
start_time >= now()
我还向select语句添加了now,以获取当前时间,尽管我可以在PHP中这样做
然后我会把所有事件都公布出来,不管它们有多重要。我会用if语句对它们进行排序,并比较开始时间和结束时间(如果有结束时间)。尽管这篇文章很旧,但我想指出一点讽刺的是,你提到的博客是我自己的,你对我最初的回复没有任何评价。