In some cases, MySQL handles a query differently when you are
        using LIMIT
         and not using
        row_countHAVING:
      
            If you are selecting only a few rows with
            LIMIT, MySQL uses indexes in some cases
            when normally it would prefer to do a full table scan.
          
            If you use LIMIT
             with
            row_countORDER BY, MySQL ends the sorting as soon
            as it has found the first
            row_count rows of the sorted
            result, rather than sorting the entire result. If ordering
            is done by using an index, this is very fast. If a filesort
            must be done, all rows that match the query without the
            LIMIT clause must be selected, and most
            or all of them must be sorted, before it can be ascertained
            that the first row_count rows
            have been found. In either case, after the initial rows have
            been found, there is no need to sort any remainder of the
            result set, and MySQL does not do so.
          
            When combining LIMIT
             with
            row_countDISTINCT, MySQL stops as soon as it finds
            row_count unique rows.
          
            In some cases, a GROUP BY can be resolved
            by reading the key in order (or doing a sort on the key) and
            then calculating summaries until the key value changes. In
            this case, LIMIT
             does not
            calculate any unnecessary row_countGROUP BY
            values.
          
            As soon as MySQL has sent the required number of rows to the
            client, it aborts the query unless you are using
            SQL_CALC_FOUND_ROWS.
          
            LIMIT 0 quickly returns an empty set.
            This can be useful for checking the validity of a query.
            When using one of the MySQL APIs, it can also be employed
            for obtaining the types of the result columns. (This trick
            does not work in the MySQL Monitor (the
            mysql program), which merely displays
            Empty set in such cases; you should
            instead use SHOW COLUMNS or
            DESCRIBE for this purpose.)
          
            When the server uses temporary tables to resolve the query,
            it uses the LIMIT
             clause to
            calculate how much space is required.
          row_count


User Comments
When one is using a LIMIT attribute in their query ,
it's often fallowed by an OFFSET. These two togeather
are often used in pagination ( paging of results ) as in.
select * from thetable limit 10 offset 0
To find out how many rows would be available if one had not
used the LIMIT / OFFSET, one would alter the statement
above to look like this
select SQL_CALC_FOUND_ROWS * from thetable limit 10 offset 0
The return from both commands looks the same, so to get the
row count you need to issue a fallowup query
select FOUND_ROWS()
So one wants to search for a particular record/row in
the database table and calculate an initial offset
value to feed into the typical pagination routines.
While there may be better ways to do this , what I cobbled
together was this little bit of MySql syntax that seems to work just fine on my little 40,000 row table.
set @row=-1;select foo.Row,foo.company_name from (select @row:= @row+1 AS Row ,company_name from TheCompanyDatabaseTable ) AS foo where foo.company_name='whatever';
Given the fact I searched in vein for this answer , I figured I'd post the answer I hacked up so it will
be here the next time I need it.
Add your own comment.