Ne kontam ovo za jednu tabelu (a ni za where koji se menja)? Gornji upit je nad samo jednom tabelom.
BTW, varijanta sa ovim vašim bi bila:
Kôd:
select rownum from (
SELECT @rownum:=@rownum+1 rownum, tabela.*
FROM (SELECT @rownum:=0) rownum, tabela
order by foo desc, bar) x
where x.id = 5