Fayland Lam wrote:
well, we have a where $where, and I want some @cols depends on $start,
$rows. besides, I want $count too.
so we have two solution here.
A, two SQLs.
1, SELECT COUNT(*) FROM table WHERE $where
2, SELECT col FROM table WHERE $where LIMIT $start, $rows.
B one SQLs with some operation
SELECT col FROM table WHERE $where
while $count is scalar @cols and real cols is splice(@cols, $start, $rows)
which solution is better? or it depends on the $count, big count A is
better and small is B?
Use A always. You might get away with using SQL_CALC_FOUND_ROWS, but
I've always found that I need to know the total row count before I run
the query because if you are asking for a $start which is beyond the
$count, I want to modify $start before running the second query.
It ends up being like this:
A, two SQLs
1, SELECT COUNT(*) FROM table WHERE $where
1.5, if ($count < $start) { $start = 1; }
2, SELECT col FROM table WHERE $where LIMIT $start, $rows.
Option B is horrible for large result sets. Only drawback to A is the
tediousness of having 2 queries, but you get over that once you develop
a pattern for writing them that way.
-- Dante
----------
D. Dante Lorenso
[EMAIL PROTECTED]
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]