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

Problema al ordenar por dos campos: varchar e int

Estas en el tema de Problema al ordenar por dos campos: varchar e int en el foro de Mysql en Foros del Web. Gente, Tengo dos campos, uno del tipo VARCHAR y otro INT. La estructura es mas o menos asi: nombre | numero camilo | 1 antonio ...
  #1 (permalink)  
Antiguo 29/09/2012, 14:47
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 20 años, 10 meses
Puntos: 2
Problema al ordenar por dos campos: varchar e int

Gente,
Tengo dos campos, uno del tipo VARCHAR y otro INT.
La estructura es mas o menos asi:

nombre | numero

camilo | 1
antonio | 0
luis | 2
pablo | 0
ernesto | 1

Quiero ordenar la salida por nombre y numero, de manera ASCENDENTE.
Por lo cual, uso: select * from mitabla ORDER BY nombre ASC, numero ASC;

Sin embargo, me ordena SOLO por nombre. Ejemplo:

antonio | 0
camilo | 1
ernesto | 1
etc

¿Qué quiero? Que me ordena por letra y numero, siendo:

antonio | 0
pablo | 0
camilo | 1
ernesto | 1
luis | 2

¿Se entiende? Alguno me podría orientar.
GRACIAS!
  #2 (permalink)  
Antiguo 29/09/2012, 15:14
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: Problema al ordenar por dos campos: varchar e int

No estas entendiendo el criterio del ORDER BY. Ordena sobre la primera columna, y sólo si en esa encuentra valores duplicados, usa la segunda para ordenar ese conjunto duplicado.
Debes ordenar por numero y nombre.
Tip: ASC es el orden por defecto, si van los dos así no hace falta que lo indique porque es redundante y lo omite.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campos, int, select, tipo, varchar
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 20:13.