1

我有一个 YQL 查询,它结合了一堆 RSS 提要,然后按日期对它们进行排序。它工作得很好,但我希望能够对结果进行分页。

这是我的查询:

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='true')

问题是yql在排序过滤器之前执行了LIMIT和OFFSET。因此,如果我有一个 LIMIT 5,我最终只会得到列表中第一个 RSS 提要的前 5 项……而不是我所有组合提要的前 5 项。

有没有办法链接查询,所以我可以获得对所有结果进行排序的所有查询,并调用限制我的结果的查询。

谢谢您的帮助。

4

2 回答 2

1

使用 truncate(count=5) 获取过滤提要的前 5 项。

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='true') | truncate(count=5)

或者带有反向排序的 tail() 方法(上面发布)也可以工作。

http://developer.yahoo.com/yql/guide/sorting.html

于 2011-01-27T04:22:08.850 回答
0

那么在另一个方向上使用tail()和附加呢?sort()

像这样的东西:

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='false') | tail(count=5)

我没有尝试过,我不确定您需要哪种排序顺序,但您可以确定使用tail(). 显然没有等效head()功能,因此请确保最新项目是排序后的末尾。

有关详细信息,请参阅 http://developer.yahoo.com/yql/guide/sorting.html

于 2011-01-12T22:27:11.157 回答