Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Segundo numero menor

Estas en el tema de Segundo numero menor en el foro de Mysql en Foros del Web. Hola, si con la funcion min(), te devuelve el valor mas bajo, ¿como puedo hacer para que me de el segundo mas bajo? Gracias...
  #1 (permalink)  
Antiguo 23/09/2010, 03:04
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 5 meses
Puntos: 32
Segundo numero menor

Hola, si con la funcion min(), te devuelve el valor mas bajo, ¿como puedo hacer para que me de el segundo mas bajo?

Gracias
  #2 (permalink)  
Antiguo 23/09/2010, 03:13
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Segundo numero menor

podrías añadir una condición en el where, donde el id de la fila no sea el id de la fila con el valor min (esto incluiría una subselect para obtener dicho id).
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 23/09/2010, 04:03
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Segundo numero menor

No existe el ROWID en Mysal, por lo que no hay un identificador de fila. En cualquier caso lo que necesitas usar es LIMIT, junto con el ORDER BY:
Código MySQL:
Ver original
  1. SELECT a, b, c, d, e
  2. FROM tabla
  3. LIMIT 1,1;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 23/09/2010, 07:25
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Segundo numero menor

Una aclaración a la propuesta de gnzsoloyo.
Si sólo quieres el número y el número podría repetirse (imaginemos que el máximo es el 123 y hay varios 123) deberías usar
SELECT distinct numero FROM `tabla` order by numero ASC limit 1,1

si además del campo numérico necesitas traerte algo más, por ej. todos los valores de los registros que tengan en el campo numero ese valor, deberás usar subconsulta luego y servirte en el interior de la consulta de group by en lugar de distinct.
ej.:

select * from tabla inner join (SELECT numero FROM `tabla` group by numero order by numero ASC limit 1,1)t1 on t1.numero=tabla.numero

Última edición por jurena; 23/09/2010 a las 07:31

Etiquetas: menor, numero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:52.