Неправильный ПОРЯДОК Facebook В fql при сортировке

#facebook #facebook-fql

#Facebook #facebook-fql

Вопрос:

У меня есть этот fql запрос:

   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_time DESC .

ORDER BY In fql ограничено одним использованием? Как я могу заставить это работать?

Комментарии:

1. Оказывается, что ссылка на таблицу может быть проиндексирована только по link_id и owner и отменяет любой другой ПОРЯДОК ПО настройкам. fql api

Ответ №1:

Я подозреваю, что проблема заключается в LIMIT утверждении. У FQL есть несколько странных внутренних поведений для оптимизации их собственного внутреннего API.

Попробуйте удалить LIMIT инструкцию и просто присвоить ей конкретное AND created_time > <point in time> значение и посмотреть, правильно ли она упорядочена. Если да, то вот почему.

Комментарии:

1. Я удалил ПОРЯДОК с помощью, и это ничего не изменило. Даже specific И created_time > < ничего не делает. Это должно быть исправлено.

2. Этот запрос произвел желаемый эффект: select link_id, title, url, owner, owner_comment, created_time, picture from link where owner in (select uid2 from friend where uid1 = me() LIMIT 50) ORDER BY created_time DESC

3. аналогичный запрос работает для меня- SELECT message_id, thread_id, author_id, body, created_time, attachment, viewer_id FROM message WHERE thread_id IN (SELECT thread_id FROM thread WHERE folder_id = 0 LIMIT 5) ORDER BY created_time DESC LIMIT 5