#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