Comunidad de diseño web y desarrollo en internet online

El último resultado

Citar            
MensajeEscrito el 24 Mar 2011 06:23 pm
Tengo estos datos en una tabla:
id=1; sec=20; nom=policial; nov=b
id=2; sec=20; nom=policial; nov=a
id=3; sec=24; nom=espectaculo; nov=a
id=4; sec=20; nom=policial; nov=c

¿Cómo puedo armar la consulta para obtener este resultado?:
id=4; sec=20; nom=policial; nov=c
id=3; sec=24; nom=espectaculo; nov=a

Es decir que me tiene que devolver una lista ordenada por el campo sec, que contenga sólo el último registro ingresado para esa sec

¿Se puede hacer esto en un sólo paso de consulta?

Por bigote

32 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 24 Mar 2011 09:32 pm
select * from tabla order by id Desc limit 0, 2

Por sebifrost

61 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Mar 2011 09:38 pm
Solo para aclarar, checate bien la pregunta..

El esta pidiendo que se ordene por sec, no por id.
si te fijas, el esta obteniendo en su resultado el ultimo sec=20 y sec=24..

yo creo que habría que hacer algo parecido pero por sec, y con un where siempre y cuando sepas los diferentes sec de la tabla, ejemplo 20 y 24, para que saques el mayor de cada uno.

Si no sabes que SEC habra, y quieres sacar el mayor de cada uno, pues yo creo que ya seria cosa de hacer algoritmos con arreglos para parsear esa información, no estoy seguro si con una consulta se pueda..

Que me corrijan los expertos en DB

Por jOina

Claber

359 de clabLevel

2 tutoriales

 

Guadalajara, Mexico

chrome
Citar            
MensajeEscrito el 25 Mar 2011 12:40 am
Sí, es como dice jOina, con lo que propone Sebifrost obtengo los dos últimos registros ingresados, pero no el último ingresado de cada sec.
Antes de romperme la cabeza quería saber si había algo en SQL :-)
Muchas gracias, voy a ver si invento algo.

Por bigote

32 de clabLevel



 

Argentina

firefox
Citar            
MensajeEscrito el 25 Mar 2011 02:30 pm
No lo he probado aun...

Código MySQL :

select distinct * from <#table#> group by sec order by sec ASC

Por edge

57 de clabLevel



Genero:Masculino  

Software developer

chrome
Citar            
MensajeEscrito el 26 Mar 2011 05:06 am
Toma las dos primeras coincidencias: para sec 20 toma el id 1 y debería tomar el 4 y para sec 24 toma el 3 porque es el único, pero si agrego otro registro con sec 24, igual toma el 3 porque es la primer coincidencia.

Probé de ordenar por id en forma descendente y por sec en ascendente, pero tampoco va.

Gracias de todos modos

Por bigote

32 de clabLevel



 

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.