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

Campo variable en stored procedure

Estas en el tema de Campo variable en stored procedure en el foro de Mysql en Foros del Web. hola amigos, tengo una function que me devuelve una cadena con un nombre de campo según los parámetros que se le pasen, esta function funciona ...
  #1 (permalink)  
Antiguo 07/04/2008, 16:52
Avatar de gpardo  
Fecha de Ingreso: octubre-2004
Ubicación: Centenario, NQN
Mensajes: 40
Antigüedad: 20 años, 1 mes
Puntos: 0
Campo variable en stored procedure

hola amigos,

tengo una function que me devuelve una cadena con un nombre de campo según los parámetros que se le pasen, esta function funciona ok. digamos que se llama Fcampo y se le pasan 3 parámetros: Fcampo(par1, par2, par3).

luego tengo una consulta con varias subconsultas en la que en una cláusula where necesito el valor que me devuelve Fcampo(par1, par2, par3), la consulta es más o menos así:

SELECT campo1, campo2, ..., campoN
FROM tabla
LEFT JOIN tabla2 ON ...
...
WHERE condicion1
AND condicion2
AND Fcampo(par1, par2, par3) = 1

en lugar de Fcampo(par1, par2, par3) normalmente ponemos el nombre de un campo, que en este caso particular varía dependiendo de los parámetros que le paso a `Fcampo`.
pero así como se ve, lo que hace es comparar 'la_cadena_devuelta_por_SPF' = 1 y yo lo que quiero es comparar `nombre_campo` = 1. se entiende? quiero que el valor devuelto por la function lo tome como el nombre de un campo y no como una simple
cadena.

la pregunta es: ¿puedo realizar esto directamente desde mysql?

aclaración1: he enviado esta pregunta también a la lista de mysql en español.

aclaración2: no me sirven las sentencias preparadas (http://dev.mysql.com/doc/refman/5.0/es/sqlps.html) ya que los parametros que le paso a la función no son externos sino que surgen de los valores de algunos campos de la misma consulta.

saludos.
__________________
Gustavo Pardo
http://dataneu.com/
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 22:22.