2012-04-12 14 views

Odpowiedz

129

Zwróci 18 wyników, począwszy od rekordu # 9 i kończąc na zapisie # 26.

Zacznij, czytając zapytanie z offset. Najpierw przesuń o 8, co oznacza, że ​​pomijasz 8 pierwszych wyników zapytania. Następnie ograniczasz się do 18, co oznacza, że ​​bierzesz pod uwagę zapisy 9, 10, 11, 12, 13, 14, 15, 16 ... 24, 25, 26, które są w sumie 18 rekordami.

Sprawdź, czy nie jest dostępny this.

A także official documentation.

+0

masz rację, czy jest jakakolwiek różnica b/w limit 8,18 i limit 18 przesunięcie 8 –

+17

Nie, to jest to samo. 'LIMIT 8, 18' to tylko skrót :) –

2

Dostaniesz wyjście z column wartości 9 do 26, jak już wspomniano OFFSET jako 8

11

Klauzula LIMIT służy do ograniczania liczby wyników zwracanych w instrukcji SQL. Więc jeśli masz 1000 wierszy w tabeli, ale tylko chce wrócić do pierwszej 10, zrobiłbyś coś takiego:

SELECT column 
FROM table 
LIMIT 10 

ta jest podobna do góry klauzuli o Microsoft SQL Server. Jednak klauzula LIMIT zawsze pojawia się na końcu zapytania w MySQL i PostgreSQL.

Załóżmy teraz, że chcesz pokazać wyniki 11-20. Ze skorygowanym kluczowe jej tak proste, następujące zapytanie zrobi:

SELECT column FROM table 
LIMIT 10 
OFFSET 10 
6

offset jest nic, ale to tylko słowa kluczowego i wskazać rozpoczęciem kursor w tabeli.

SELECT column FROM table LIMIT 18 OFFSET 8 //start on record 9 (OFFSET 8) with record 18 

dostać samej formie Wynik

SELECT column FROM table LIMIT 8,18 
+0

Niezłe wyjaśnienie! Dzięki –

Powiązane problemy