Dzisiaj w pracy (używamy Firebird SQL) chciałem zoptymalizować powstałe zapytanie do bazy. Chodziło mi tylko o pierwszy rekord zapytania (odpowiednie warunki w ORDER BY).
Jako, że dużą część życia używałem MySQL/PostgreSQL od razu pomyślałem, że użyję LIMIT z parametrem tak, aby otrzymać tylko jeden rekord w wyniku.
Niestety wyszło, że komenda nieznana 🙂 Dla potomnych jak używać LIMIT w różnych systemach bazodanowych:
- MySQL
SELECT column1, column2 FROM foo LIMIT 10, 20
- PostgreSQL
SELECT column1, column2 FROM foo LIMIT 20, 10
- Firebird 1.x
SELECT FIRST 10 SKIP 20 column1, column2 FROM foo
- Firebird 2.x
SELECT FIRST 10 SKIP 20 column1, column2 FROM foo
lub
SELECT column1, column2, column3 FROM foo ROWS 10 TO 20 (zgodne SQL standards)
Informacja jak to zrobić w Firebird 1.x z bloga Scott’a Yang’a.