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

[SOLUCIONADO] Order by con variable

Estas en el tema de Order by con variable en el foro de Mysql en Foros del Web. Muy buenas, Estoy intentado ordenar unas tablas a partir de una variable, me gustaria que la variable tubiera el nombre del campo pero veo que ...
  #1 (permalink)  
Antiguo 11/11/2014, 02:19
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años, 1 mes
Puntos: 0
Order by con variable

Muy buenas,

Estoy intentado ordenar unas tablas a partir de una variable, me gustaria que la variable tubiera el nombre del campo pero veo que esto me funciona, es decir si el campo es numerico si que funciona pero si es un string no.

Código MySQL:
Ver original
  1.     FROM
  2.                     (select @var:=true
  3.                     ) v,
  4.                    
  5.               Table a
  6.               WHERE
  7.         TRUE
  8.         and
  9.         case
  10.             WHEN 'a'='a'        then  @var :=4
  11.         END
  12.    
  13.         ORDER BY
  14.                    
  15.         @var DESC

He probado con esto, pero no me ordena por la colmna 4, es decir var vale 4 pero no me lo ordena. He probado tambien en hacer con @var =' nombre_campo' pero tampoco funciona, si le quito las comillas y el campo es numerico si que funciona bien
  #2 (permalink)  
Antiguo 11/11/2014, 05:22
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 10 años, 2 meses
Puntos: 12
Respuesta: Order by con variable

Hola Maca, el query lo queres hacer desde php?

Saludos.
__________________
http://www.sp-vision.net

Última edición por mauritosuarez; 11/11/2014 a las 05:42
  #3 (permalink)  
Antiguo 11/11/2014, 05:55
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: Order by con variable

@mauritosuarez / @Macas: Si fuera desde PHP sería pprogramación que es OFF TOPIC en este foro.

@Macas: ORDER BY, al menos en MySQL, no admite el uso de variables. Para hacer lo que quieres deberías usar sentencias preparadas (prepared statement) de MySQL.
Además de eso, el CASE... WHEN, donde se hgacen reasignaciones de valor a variables es ilegal o al menos una práctica sucia e inestable en el WHERE.
Tampoco puedes usar un nombre de tabla llamado "TABLE"·, porque es palabra reservada.

Creo que te está faltando algo de práctica.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 15/11/2014, 04:53
 
Fecha de Ingreso: noviembre-2012
Mensajes: 136
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: Order by con variable

Gracias por contestar ya lo solucioné, respecto lo de table lo puse como indicación no es el nombre de la tabla.

Gracias de todas formas.

Etiquetas: campo, order, select, tabla, variable
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 21:22.