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