Get row position in ordered result set (pagination)

SET @val := 0;
CREATE TEMPORARY TABLE IF NOT EXISTS inv_items_tmp AS (SELECT (@val := @val + 1) AS val, id FROM inv_items ORDER BY inv_no,model);
SET @oneless := (SELECT val FROM inv_items_tmp WHERE id=2977);
SELECT COUNT(*) FROM inv_items_tmp WHERE val<@oneless;
DROP TABLE inv_items_tmp;