elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Problema con Order By en Consulta [MySQL + PHP]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con Order By en Consulta [MySQL + PHP]  (Leído 6,181 veces)
rootusr

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Problema con Order By en Consulta [MySQL + PHP]
« en: 14 Julio 2008, 19:10 pm »

Hola a todos:

Trabajo en una aplicacion cuya base de datos en MSYQL ya habia sido creada previamente. esta aplicacion despliega en un PDF (parte resuelta) un reporte de ciertos datos ordenados en categorias por medio de un numero de registro por ejemplo:
Código:
COLOR ROJO

01 rojo a
02 rojo b
03 rojo c

COLOR AZUL

01 azul a
02 azul b
03 azul c
El problema es que el numero de registro con el que se ordenan los datos de cada categoria cambia entre una y otra. por ejemplo: por ejemplo para la primera categoria son numero enteros (123,134,1123 ...) para la segunda son letras, guiones y numeros (M_123, M_345, M_1332) y en otras son Solo guiones y numeros. en un principio no lograba hacer que el order by de mi consulta ordenara los valores por medio del identificador del registro para ninguna categoria pero depues de leer un poco encontre que añadiendo "+0" al final del campo por el cual se ordena en la consulta se solucionaba el problema y asi fue. ordena todos exepto los de la categoria que inica con una letra seguida de un guion bajo y depues un numero (M_23). el order by de mi consulta es asi:
Código:
...ORDER BY  productos.num_product+0


el resultado que devuelve para la categoria del problema es por ejemplo: M_23, M_4, M_455, M_2

el campo que indica el numero o clave del registro se debe imprimir en el reporte. la pregunta es: ¿como logro que se ordenen de manera ascendente todos los registros impresos en el reporte incluyendo aquellos que inician con una letra?

Aqui pongo un poco de infomracion Extra:
La columna en cuestion es de tipo varchar
la version de MySQL es la 5.X
la Aplicacion esta en PHP y Utilizo FPDF para generar el reporte

espero haberme explicado. desde ya muchas gracias y ojala alguien pueda darme una mano.


En línea

Hans el Topo


Desconectado Desconectado

Mensajes: 1.754


"Estoy cansado de no hacer nada"


Ver Perfil WWW
Re: Problema con Order By en Consulta [MySQL + PHP]
« Respuesta #1 en: 15 Julio 2008, 00:55 am »

no se si lo he entendido, quieres ordenarlos como si fuesen solamente números no? sin _ ni letras delante es decir:

111, m_123, 200, _210, m_222?

lo que vas a tener que hacer es transformar las cadenas en números o purgar las letras (quitar cualquier caracter que no sea un número)
puedes hacerlo mediante una función/procedimiento, es decir si no encuentras una función que te elimine las letras nativa a mysql tendrás que crearla tu

y por si lo que te falla es lo básico:

para ordenar ascendente es
order by "campo o expresion" asc (por defecto toma el asc)

en descendente
order by "campo o expresion" desc

también puedes ordenar por diferentes campos
order by "campo1sin comillas" asc, "campo2sincomillas" desc



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Consulta SQL - problema coalesce
Bases de Datos
pyxolo 3 3,207 Último mensaje 17 Noviembre 2011, 14:21 pm
por fran800m
ORDER BY no me funciona
Desarrollo Web
Ethgar 3 1,522 Último mensaje 19 Febrero 2014, 20:19 pm
por engel lex
Wolfenstein: The New Order se lanzará el 23 de mayo
Noticias
wolfbcn 0 762 Último mensaje 19 Febrero 2014, 21:34 pm
por wolfbcn
[Resuelto] Consulta PHP ORDER BY en select
PHP
bgnumis 2 1,236 Último mensaje 14 Diciembre 2014, 21:02 pm
por bgnumis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines