23377 Posts in 18296 Topics by 2867 members
|Go to End|
7 August 2010 at 4:45am
I use this to get 10 "Article" items, ranked by "RankingDate":
DataObject::get("Article", $q ,'RankingDate DESC','','10');
I only want ODD items to be returned. Only the 1st, 3rd, 5th, 7th and 9th item should be returned.
The MySQL query for that looks something like this:
(select *, @rn:=@rn+1 rn
from (select @rn:=0) r, `sitetree`
WHERE `ClassName` LIKE '%Article%'
order by `Title`
How can I do this with DataObject::get()?
7 August 2010 at 5:26am
$dosArticle = DataObject::get("Article", '','RankingDate DESC','','20');
$dosOnlyOddArticle = new DataObjectSet();
foreach($dosArticle as $doArticle)
7 August 2010 at 6:36am
Thanks, swaiba. But your idea is not as kind on memory as if SQL did the work.
8 August 2010 at 12:22am
oh, it's didn't look like that would be an issue, but I guess you know where you need to optimise... I was always taught to get it working (whilst think of memory and CPU cycles) and then come back and address the demonstrated bottlenecks later...
why don't use directly query your datable using mysql_query or DB::query if this is a real memory hog that you want to streamline?
|Go to Top|