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

ordenar string por longitud

Estas en el tema de ordenar string por longitud en el foro de Mysql en Foros del Web. hola, tengo una tabla de empleados con un campo cedula tipo varchar, ¿como puedo hacer para que me ordene por la longitud de la cedula?, ...
  #1 (permalink)  
Antiguo 21/10/2010, 15:26
Avatar de blonder413  
Fecha de Ingreso: octubre-2010
Mensajes: 58
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta ordenar string por longitud

hola, tengo una tabla de empleados con un campo cedula tipo varchar, ¿como puedo hacer para que me ordene por la longitud de la cedula?, quiero algo como esto:

113564
1116359
10236454
10246987

el codigo que tengo me lo ordena de esta manera

10236454
10246987
1116359
113564

SELECT * FROM empleado ORDER BY cedula
  #2 (permalink)  
Antiguo 21/10/2010, 15:46
Avatar de blonder413  
Fecha de Ingreso: octubre-2010
Mensajes: 58
Antigüedad: 14 años, 1 mes
Puntos: 0
Información Respuesta: ordenar string por longitud

solucionado:

SELECT ... ORDER BY LENGTH(your_field);
  #3 (permalink)  
Antiguo 21/10/2010, 15:46
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 18 años, 9 meses
Puntos: 96
Respuesta: ordenar string por longitud

Saludos

Por que tienes ese campo tipo varchar siendo que deberia ser de tipo int?
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #4 (permalink)  
Antiguo 21/10/2010, 15:48
Avatar de blonder413  
Fecha de Ingreso: octubre-2010
Mensajes: 58
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: ordenar string por longitud

segun se, la normalizacion dice que solo los campos con los que se vayan a realizar operaciones matematicas deben ser tipo numero, de todas maneras ya lo hice, era muy facil.

SELECT ... ORDER BY LENGTH(your_field);
  #5 (permalink)  
Antiguo 21/10/2010, 16:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: ordenar string por longitud

Cita:
segun se, la normalizacion dice que solo los campos con los que se vayan a realizar operaciones matematicas deben ser tipo numero,
El que te dijo eso te mintió. Los tipos de campo se definen no por su uso sino por su dominio.

Si el dominio de un tipo de dato sólo serán números, no se deben usar VARCHAR para almacenarlos, sino numéricos (INT, DOUBLE, FLOAT, DECIMAL etc.), no solamente por cuestiones de eficiencia de espacio, sino por razones de optimización de consultas, ya que las operaciones realizadas con números tienden a tener mejor performance.

A esta última razón se agregan motivos de recursos de hardware: El almacenamiento de un valor numérico de orden 2^64 sólo requiere de 8 bytes como numérico, mientras en VARCHAR se necesitan 20 caracteres, por la simple razón de que los números se almacenan como binarios y no como cifras.

Finalmente: La normalización de bases de datos no dice, en realidad, absolutamente nada sobre la forma de almacenaje porque eso no es tema de normalización sino de implementación. Eso surge del análisis de los requerimientos del sistema.
__________________
¿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: longitud, ordenacion
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 05:29.