标签:
FQL是FACEBOOK提供的一种类似SQL风格的查询语句,FQL可以查询FACEBOOK的Graph API暴露出来的数据。访问https://api.facebook.com/method/fql.query?query=QUERY
,把QUERY部分替换成任意XML或JSON格式的查询参数。
SELECT [fields] FROM [table] WHERE [conditions]
FQL不同于SQL,FROM
只能查询单个表。你也可以用关键字IN
在SELECT
或WHERE
中加入子查询。但是子查询不能引用外部查询中的变量。可被查询的属性只能是文档中的那些可检索的项目。
FQL可以进行数学运算,基础布尔计算,AND
或NOT
逻辑运算,以及ORDER BY
和LIMIT
子句。
任何查询都需要提交一个uid
,你可以调用me()
。例如:
SELECT name FROM user WHERE uid = me()
除了me()
,其他可用的还有now()
, strlen()
, substr()
和 strpos()
。另外rand()
可用在ORDER BY
中(如ORDER BY rand()
)。
下面这条语句展示了如何查询当前用户和当前用户的朋友的个人信息:
SELECT uid, name, pic_square FROM user WHERE uid = me() OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
下面的例子展示了如何使用NOT
操作FQL,查询参加了某个事件(event)并且非当前用户或当前用户朋友的人的uid:
SELECT uid, name FROM user WHERE uid IN (
SELECT uid FROM event_member WHERE eid=209798352393506
)
AND NOT (uid=me())
AND NOT (uid IN (
SELECT uid1 FROM friend WHERE uid2=me()
))
FAQ:
如何获取10个随机的朋友?
你可以使用order by rand()。
select uid2 from friend where uid1 = me() order by rand() limit 10
标签:
原文地址:http://my.oschina.net/sundiontheway/blog/387989