PDA

Ver la Versión Completa : ordenar por nombre de columna, no por el valor que contiene


Gaim2205
07-04-2008, 03:18:29
Hola, tengo una duda. En MySQL es posible ordenar los resultados de una consulta por el nombre de la columna, no por el valor que contiene? por ejemplo:

Las columnas son: cla_act1, cla_act2, y cla_act3. Supongamos que contienen los valores 5, 2 y 10 respectivamente.

En mi aplicación JSP no se porque automaticamente las ordena por valor, es decir 2, 5, 10. Pero si en mi consulta hago un order by Desc veo que si me los despliega 10, 5, 2. El problema ese que yo quiero que los deje intactos. Solo se me ocurre ordenandolos por el nombre de la columna

cla_act1 = 5
cla_act2 = 2
cla_act3 = 10

Ojalá me haya dado a explicar. Gracias.

keyboy
07-04-2008, 03:25:33
No entiendo. Tú estás hablando de columnas pero los ordenamientos se hacen sobre filas. Un order by ... desc no puede reacomodarte las columnas.

Bye

Lepe
07-04-2008, 11:29:21
Hola, tengo una duda. En MySQL es posible ordenar los resultados de una consulta por el nombre de la columna, no por el valor que contiene?

Ningún SGBBDD hace lo que pides.

Saludos

Ivanzinho
07-04-2008, 12:02:19
Yo lo que creo es que Gaim2205 está confundiendo filas con columnas, ya que al hablar de order by dice como se los ordena. En cuanto a cla_act1, cla_act2, cla_act3 creo que se refiere a la misma columna en diferentes registros.

A espera de que Gaim2205 confirme lo anterior me voy a aventurar con una posible respuesta.

El comportamiento que indicas sobre la ordenación de los registros puede ser debido a que tengas un índice (posiblemente clave primaria) para el campo cla_act, por lo que el gestor, para optimizar el tiempo de la consulta, y no indicandosele otra cosa en ésta, ordena por dicha columna. Para solucionar esto deberías tener otro campo, autoincremental, que se incrementase en cada inserción, para así ordenar por antigüedad. Otra posible solución sería indicar el plan de ejecución de la consulta, lo cuál no se si lo permite MySQL.

Pero ya digo, todo esto son conjeturas, por lo que espero una respuesta aclaratoria.

Un saúdo.