Tabella:
codice:
Id Articolo Flag Prezzo
1 aaa 0 32
2 bbb 0 22
3 ccc 1 54
4 ddd 0 8
5 eee 0 77
6 fff 1 11
7 ggg 1 25
8 hhh 0 87
Attraverso questa query:
codice:
SELECT * FROM Tabella ORDER BY FLAG DESC, PREZZO ASC
estraggo dapprima gli articoli con flag 1 (devono infatti stare sempre in testa al recordset) poi tutti quelli che seguono ordinandoli per prezzo. Fin qui nessun problema. Il problema arriva quando mi si rende necessario l'utilizzo della LIMIT per la paginazione.
Infatti la limit NON DEVE considerare i record con flag 1 ma solamente i successivi. Ecco che con una limit di due dovrebbe restituirmi i primi tre con flag 1 e poi, grazie alla limit restituirmene due con flag 0. Invece mi restituisce i primi due record con flag 1...
Esiste un modo per risolvere senza dover ricorrere a due query separate unite da un union all? ovviamente niente soluzioni del tipo "fai una limit 2+3 perchè il numero di record con flag 1 non è mai noto a priori...
Grazie.