FQL
出自YiqiWiki
FQL 允许你通过使用类SQL语句对一起网数据进行查询,这些也可以通过开放API方法进行访问.
基本原理
FQL 是一种类似SQL语法的接口查询YIQI网数据的方法,当然也可以使用API来完成同样的功能.实际上, 许多API都是FQL查询语言的封装. 通常的查询语法如下:
| SELECT name, pic FROM user WHERE uid=211031 OR uid=4801660 |
为什么要使用FQL呢? 其相对传统API的主要优势如下:
- 压缩的XML可以减少带宽使用和分析开销.
- 可以有效减少请求的次数.
- 为你的所有数据提供唯一接口.
查询语言
你现在也许已经认为FQL对你很有用处了,然而,如何使用它呢? 如果你已经了解SQL,那么FQL对你来说将是十分简单的. 查询的形式通常是Template:C .不同于SQL, FROM 后只能更一个表面. 可以在SELECT 和 WHERE 字句中使用IN进行自查询,但自查询不能引用输变量.
你的查询关键字必须是可被 索引的. 例如: 你不能使用WHERE 1- 通常查询语句应该是一个具体的,可以枚举的ID集合。 如果不满足这个条件,将产生错误码 604.
FQL引入了一种处理列的方法,这些列本身是对象或数组,你可以引用整个结构,也可以使用带点结构得到一个字段.
例如:你能这样做,以得到整个结构体:
| SELECT education_history, current_location |
或者这样做,以得到对应结构体中某些独立域:
| SELECT education_history.name, current_location.zip |
在where子句中,这有时使有用处的. 例如:
| WHERE "Stanford" IN education_history.name OR current_location.zip = 07079 |
学习FQL最好的方法就是进行试验.
如果你无法确定where子句如何工作,请记住:在SELECT子句中,任何合法的表达式都是合法的. 因此,你可以加入一些内容进行测试,以了解更多的查询是如何进行的。

