2011-04-06 15 views
4

我有這個fql查詢:Facebook的FQL不當ORDER BY排序

SELECT link_id, owner, owner_comment, created_time, title, summary, url, image_urls 
    FROM link 
    WHERE owner IN (SELECT uid2 
        FROM friend 
        WHERE uid1 = me()) 
ORDER BY created_time DESC 
    LIMIT 0,200; 

它應該由我的好友可以顯示最近200個發佈的鏈接,但它顯示他們通過owner ID ASC隨即下令由created_timeDESC

ORDER BYfql限於一種用途?我怎樣才能使它工作?

+0

原來表_link_只能被_link_id_和_owner_索引,並放棄任何其他的ORDER BY設置。 [fql api](http://developers.facebook.com/docs/reference/fql/links/) – MarshallBananas 2011-04-06 20:31:22

回答

3

我懷疑問題是LIMIT聲明。 FQL有一些奇怪的內部行爲來優化他們自己的內部API。

嘗試刪除LIMIT聲明,並給它一個特定的AND created_time > <point in time>,看看它是否正確地訂購。如果是這樣,那就是爲什麼。

+0

我刪除了ORDER BY,它沒有改變任何東西。即使具體AND created_time><什麼都不做。這必須被打破。 – MarshallBananas 2011-04-06 20:24:32

+0

此查詢具有期望的效果: 'select link_id,title,url,owner,owner_comment,created_time,來自鏈接所在的所有者的圖片(選擇uid2來自friend其中uid1 = me()LIMIT 50)ORDER BY created_time DESC' – 2011-09-07 02:47:21

+0

(SELECT thread_id FROM thread WHERE folder_id = 0 LIMIT 5) ORDER BY created_time DESC LIMIT 5'類似的查詢對我有用 - SELECT message_id,thread_id,author_id,body,created_time,attachment,viewer_id FROM message WHERE thread_id IN – psulek 2012-05-31 19:36:48