What is FQL ?
FQL is a Facebook platform SQL-style interface which can be queried by 3rd party applications using SQL-like syntax.
Some key features:
- FQL does not support joins, but supports sub-queries (including IN keyword).
- Query must be indexable (WHERE clause should include at least one field that is defined as "indexable").
- COUNT and ORDER BY are not supported.
- It is possible to select structured fields (e.g. SELECT current_location.zip) or entire structures.
- The output is XML.
How to count records
Given that output XML is transferred over the wire one should also take care of the bandwidth. For example we want to get COUNT (only) of all current user friends who installed the current application. COUNT is not supported so we need to fetch all required records and count them on the application side. The query should go like so:
SELECT '' FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = USERID) AND has_added_app = 1
Selecting empty string would reduce the size of the XML dramatically, yet it is very easy to count rows quickly.
Sunday, October 07, 2007 3:42 AM