Ver Mensaje Individual
  #4 (permalink)  
Antiguo 29/05/2012, 07:42
Avatar de lobo_php
lobo_php
 
Fecha de Ingreso: noviembre-2007
Ubicación: Cali-Colombia
Mensajes: 1.869
Antigüedad: 16 años, 6 meses
Puntos: 75
Respuesta: Ordenar campo alfanumerico

Cita:
Iniciado por jurena Ver Mensaje
Primero debes decirnos si ese prefijo EN siempre es el mismo o hay otros caracteres y qué tamaño tienen. Te lo digo porque lo mismo necesitamos ordenar por doble criterio, primero por el prefijo en modo alfabético y luego por el resto en modo numérico.
Te anticipo que tendremos que separar esa cadena y en el order by establecer dos parámetros uno alfabético de dos caracteres
y luego otro numérico mediante CAST(SUBSTRING_INDEX(id_indicador_interno, "EN",1) AS UNSIGNED)

no lo he probado, pero a ver si así:
Código MySQL:
Ver original
  1. ORDER BY LEFT(id_indicador_interno,2),
  2. CAST(SUBSTRING_INDEX(nombrecampo, "EN",1) AS UNSIGNED)

De todas maneras, necesitamos saber si el prefijo puede ser distinto y si además puede tener menos número de caracteres o más.
De todas formas probé tu solución y me funcionó con todos, sólo le quité el EN y dejé el espacio en blanco, así:

Código MySQL:
Ver original
  1. ORDER BY LEFT(id_indicador_interno,2),
  2. CAST(SUBSTRING_INDEX(id_indicador_interno, '',1) AS UNSIGNED)

muchas gracias

__________________
Cabuntu.org - Difundiendo Software Libre en Cali, Colombia
Usuario Linux # 483175