2012-08-11 13 views
5

Tengo una tablaObtener el valor MAX en consulta MySQL

 id  mid userid remarks 
     1  2  8   7 
     2  2  8   6 
     3  2  8   4 
     4  2  8   5 
     5  2  8   2 
     6  2  8   3 
     7  2  8   7 
     8  2  8   0 
     9  2  8   1 
     10  2  8   8 

necesito la última fila de observación antes de esa fila. es decir, la observación '1'

SELECT MAX(id),mid,userid,remarks FROM sample 
+0

¿Necesita el comentario con la identificación más grande o 2'y más grande? – Magnus

+0

Sí Absolutamente necesito el segundo más grande – thersa

Respuesta

16
Select Id,mid,userid,remarks from sample Where id<(select max(Id) from sample) 
order by id desc limit 1 

O

Select Id,mid,userid,remarks from sample 
order by id desc limit 1 offset 1 
+0

Gracias por tu respuesta. Quiero saber qué hace este desplazamiento? – thersa

+0

Tanto las consultas estaban trabajando – thersa

+0

@thersa Estos LIMIT y OFFSET comandos funcionan sólo en MYSQL. "LIMIT 1" toma la primera fila del conjunto de resultados. OFFSET 1 cambia la fila de inicio de "LIMIT 1" a la segunda fila. "OFFSET 2" lo cambia a la fila de 3'... – valex

4

Prueba esto:

SELECT MAX(id),mid,userid,remarks 
    FROM sample WHERE id NOT IN (
    SELECT MAX(id) FROM sample 
    ) 
    GROUP BY mid,userid,remarks 

EDITAR

ver si esto funciona

SQL FIDDLE DEMO

+0

Parece que he entendido mal la pregunta –

+0

Ya la consulta está funcionando, pero necesito el segundo más grande – thersa

+0

Muestra # 1052 - Columna 'id' en IN/ALL/ANY subconsulta es ambigua – thersa

Cuestiones relacionadas