Ik heb een tabel met klanten nu wil ik bij een bepaalde klant de volgende klant hebben gesorteerd op klantnaam.
Een volgend ID opvragen kan als volgt:
Maar zodra het geen numerieke velden zijn heb ik een probleem.
Omdat kleiner dan niets zegt over de alfabetische volgorde.. Hoe kan ik dit in een query oplossen? Ik kan wel de gehele tabel fetchen naar een array fetchen met php en dan de elementen voor en na het benodigde record eruit lichten maar dat lijkt me alles behalve efficient.
ROW_NUMBER heeft MySQL niet dus dat gaat hem niet worden. Ik kan wel in MySQL een counter mee laten lopen maar daar kan je vervolgens geen WHERE clause aan vasthangen.
Een volgend ID opvragen kan als volgt:
code:
1
| SELECT pkKlantID FROM klanten WHERE pkKlantID < {$pkKlantID} ORDER BY pkKlantID ASC LIMIT 1 |
Maar zodra het geen numerieke velden zijn heb ik een probleem.
code:
1
| SELECT pkKlantID FROM klanten WHERE pkKlantID < {$pkKlantID} ORDER BY klantnaam ASC LIMIT 1 |
Omdat kleiner dan niets zegt over de alfabetische volgorde.. Hoe kan ik dit in een query oplossen? Ik kan wel de gehele tabel fetchen naar een array fetchen met php en dan de elementen voor en na het benodigde record eruit lichten maar dat lijkt me alles behalve efficient.
ROW_NUMBER heeft MySQL niet dus dat gaat hem niet worden. Ik kan wel in MySQL een counter mee laten lopen maar daar kan je vervolgens geen WHERE clause aan vasthangen.
[ Voor 10% gewijzigd door me1299 op 04-06-2010 13:54 ]
Het maakt eigenlijk niet uit wat je bewuste geest doet, omdat je onderbewuste automatisch precies dat doet wat het moet doen