Hello. On Sun 2002-12-22 at 08:56:43 -0500, [EMAIL PROTECTED] wrote: > I really don't want to do this client side (I'd have to execute > approximately 10 queries for every page load just for this small task). > Selecting the entire table into a temp table to number the rows also > seems rather inefficient. I was reading in a book at Barnes and Noble > yesterday which said to use a query that looked something like this: > > SELECT a.id FROM documents as a, documents as b WHERE a.id >= b.id GROUP > BY a.id HAVING MOD(a.id,:n); > > I'm nearly positive that that isn't exactly what it said, but it was > something like that. If anyone can come up with a way to do this without > a temporary table and only one or two queries (using 3.x or 4.0) that'd > be great. Thanks for the help guys.
Well, the solution is already in there: they suggest using a HAVING clause to reduce the rows after the complete result set has been determined. And to use MOD(id, number) to select which rows to keep. MOD(id,10) will return 0 for multiples of 10. So, if you want every 10th rows, you would use SELECT * FROM your_table WHERE some_condition HAVING NOT MOD(id,10) If you still encounter problems, please elaborate. And include a real example of what you tried. HTH, Benjamin. -- [EMAIL PROTECTED] --------------------------------------------------------------------- Before posting, please check: http://www.mysql.com/manual.php (the manual) http://lists.mysql.com/ (the list archive) To request this thread, e-mail <[EMAIL PROTECTED]> To unsubscribe, e-mail <[EMAIL PROTECTED]> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php