Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/04/2008, 16:52
Avatar de gpardo
gpardo
 
Fecha de Ingreso: octubre-2004
Ubicación: Centenario, NQN
Mensajes: 40
Antigüedad: 19 años, 6 meses
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/