2011-04-23 33 views
12
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 

consulta anterior devolverá la primera fila 10,MySQL rango límite

cómo modificar el LIMIT, o tal vez hay otra sintaxis para consultar la décima fila hasta la fila 20?

Respuesta

3

límite tiene también un parámetro de desplazamiento

SELECT name FROM mydb ORDER BY score DESC LIMIT 10,10 
0
SET @rank = 0; 
SELECT rank, name, score 
FROM (
    SELECT @rank := @rank +1 AS rank, name, score 
    FROM mydb 
    ORDER BY score DESC 
    LIMIT 100 
) X 
WHERE rank >= 10; 
10

Uso offset para aclarar la consulta.

SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10 
+0

de desplazamiento es definitivamente una mejor idea cuando se tiene que construir consulta en el código. – qasimzee

1

puede usar desplazamiento

 
SELECT name FROM mydb ORDER BY score DESC LIMIT 10 OFFSET 10 

aquí, desplazamiento indica que desde donde 10 los datos siguientes mostrarán.

también se puede utilizar a continuación:

 
SELECT name FROM mydb ORDER BY score DESC LIMIT 10, 10 
+1

Por favor [no proporcione una solución que ya esté cubierta por otra respuesta] (// meta.stackexchange.com/a/192293/269535). Si está de acuerdo con otra respuesta, cuando tenga suficiente [reputación] (// stackoverflow.com/help/whats-reputation) puede [upvote it] (// stackoverflow.com/privileges/vote-up), que es la forma de desbordamiento de pila para indicar su acuerdo. Ver también [respuesta]. –