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

Reply via email to