Voor een paging systeem wil ik weten hoeveel records de database teruggeeft bij een bepaalde query, dat doe ik dus zo:
Dat werkt dus prima. Maar ik wil ook het volgende weten:
het product met het ID=143 (bijvoorbeeld). Als hoeveelste rij komt deze terug als ik de query echt zou uitvoeren. (en komt hij er uberhaupt in voor?)
Nu zou ik dit kunnen oplossen door eerst alle id's op te halen en dan met php te kijken de hoeveelste row het is. Maar mijn sql-statements bevatten ook order by clauses. dus zal ik die velden ook mee moeten opvragen anders werkt de order by niet... Dat levert dus nogal wat extra databasewerk op.
Dus ik vroeg mij af of iemand weet of dit rechtstreeks met sql mogelijk is, dus in pseudo sql
Op dit moment is het nog MySQL 3.23 maar ik heb de mogelijkheid om naar MySQL 4.01 over te stappen.
code:
1
| select count(*) as c form producten where producttype='4' |
Dat werkt dus prima. Maar ik wil ook het volgende weten:
het product met het ID=143 (bijvoorbeeld). Als hoeveelste rij komt deze terug als ik de query echt zou uitvoeren. (en komt hij er uberhaupt in voor?)
code:
1
| select id, naam,prijs, from producten where producttype='4' |
Nu zou ik dit kunnen oplossen door eerst alle id's op te halen en dan met php te kijken de hoeveelste row het is. Maar mijn sql-statements bevatten ook order by clauses. dus zal ik die velden ook mee moeten opvragen anders werkt de order by niet... Dat levert dus nogal wat extra databasewerk op.
Dus ik vroeg mij af of iemand weet of dit rechtstreeks met sql mogelijk is, dus in pseudo sql
code:
1
| select n-th row as rownr from producten where id='4' when producttype='4' and ordered by naam |
Op dit moment is het nog MySQL 3.23 maar ik heb de mogelijkheid om naar MySQL 4.01 over te stappen.