Sök…


Syntax

  • VÄLJ kolumn_1 [, kolumn_2]
    FRÅN tabell_1
    BESTÄLLNING AV order_kolumn
    LIMIT row_count [OFFSET row_offset]
  • VÄLJ kolumn_1 [, kolumn_2]
    FRÅN tabell_1
    BESTÄLLNING AV order_kolumn
    LIMIT [rad_offset,] rad_antal

Anmärkningar

"Limit" kan betyda "Max antal rader i en tabell".

"Offset" betyder val från row (inte förväxlas av primärt nyckelvärde eller något fältdatavärde)

Begränsning och förskjutning

Med tanke på följande users :

id Användarnamn
1 user1
2 User2
3 användare3
4 Användare4
5 user5

För att begränsa antalet rader i resultatuppsättningen för en SELECT fråga kan LIMIT klausulen användas tillsammans med ett eller två positiva heltal som argument (noll ingår).

LIMIT klausul med ett argument

När ett argument används kommer resultatuppsättningen endast att begränsas till det nummer som anges på följande sätt:

SELECT * FROM users ORDER BY id ASC LIMIT 2
id Användarnamn
1 user1
2 User2

Om argumentets värde är 0 kommer resultatset att vara tomt.

Observera också att ORDER BY klausulen kan vara viktig för att ange de första raderna i resultatset som kommer att presenteras (när du beställer av en annan kolumn).

LIMIT klausul med två argument

När två argument används i en LIMIT klausul:

  • det första argumentet representerar raden från vilken resultatuppsättningsraderna kommer att presenteras - detta nummer nämns ofta som en förskjutning , eftersom det representerar raden före den första raden i den begränsade resultatsatsen. Detta gör det möjligt för argumentet att få 0 som värde och därmed beakta den första raden i det icke-begränsade resultatset.
  • det andra argumentet anger det maximala antalet rader som ska returneras i resultatuppsättningen (på samma sätt som ett argumentets exempel).

Därför frågan:

SELECT * FROM users ORDER BY id ASC LIMIT 2, 3

Presenterar följande resultatuppsättning:

id Användarnamn
3 användare3
4 Användare4
5 user5

Lägg märke till att när offsetargumentet är 0 , kommer resultatuppsättningen att motsvara en LIMIT klausul med ett argument. Detta innebär att följande två frågor:

SELECT * FROM users ORDER BY id ASC LIMIT 0, 2

SELECT * FROM users ORDER BY id ASC LIMIT 2

Producera samma resultatuppsättning:

id Användarnamn
1 user1
2 User2

OFFSET nyckelord: alternativ syntax

En alternativ syntax för LIMIT klausulen med två argument består i användningen av OFFSET nyckelordet efter det första argumentet på följande sätt:

SELECT * FROM users ORDER BY id ASC LIMIT 2 OFFSET 3

Denna fråga skulle returnera följande resultatuppsättning:

id Användarnamn
3 användare3
4 Användare4

Lägg märke till att argumenten i denna alternativa syntax har ändrat sina positioner:

  • det första argumentet representerar antalet rader som ska returneras i resultatuppsättningen;

  • det andra argumentet representerar offset.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow