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

Usar un valor como variable en una consulta msyql

Estas en el tema de Usar un valor como variable en una consulta msyql en el foro de Mysql en Foros del Web. Hola a todos, Necesito hacer una cosa y no se si se puede o no. Tengo una tabla que me guarda el nombre de otra ...
  #1 (permalink)  
Antiguo 25/02/2010, 11:37
Avatar de SUSMO  
Fecha de Ingreso: abril-2008
Ubicación: Barcelona
Mensajes: 188
Antigüedad: 16 años
Puntos: 0
Usar un valor como variable en una consulta msyql

Hola a todos,

Necesito hacer una cosa y no se si se puede o no.
Tengo una tabla que me guarda el nombre de otra tabla y me gustaria saber si dentro de la consulta mysql se puede utilizar el valor de un campo como nombre de la tabla.

Tendría que hacer algo como:

Código MySQL:
Ver original
  1. SELECT c.tx_ref, c.t_name as typeName
  2. FROM content_tx_t_c c
  3. INNER JOIN content_tx__{typeName} as t
  4. ON  c.tx_ref = t.ref
  5. WHERE c.c_id in (8,22,9,23,24,10,3)

Donde {typeName} sea el valor del registro para la columna t_name. He estado buscando y no he encontrado nada parecido por lo que me lleva a pensar que no se puede hacer ya que es muy rebuscado, pero claro, hay tantas cosas que se pueden hacer y a veces parece que no ....

¿Podría alguien sacarme de la duda?
Gracias
__________________
Perdida en el mundo del conocimiento
  #2 (permalink)  
Antiguo 25/02/2010, 12:09
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Usar un valor como variable en una consulta msyql

Unicamente usando sentencias preparadas (ver manual: Sentencias Preparadas), en las cuales el contenido del campo pasa a ser un parámetro de entrada para la SP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 25/02/2010, 13:16
 
Fecha de Ingreso: septiembre-2008
Mensajes: 20
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Usar un valor como variable en una consulta msyql

hay una opcion y que me gusta mucho usar con los SP (procedimientos almacenados) ejemplo;

DELIMITER $$

DROP PROCEDURE IF EXISTS `nombre_bd`.`guardar_nombre` $$
CREATE PROCEDURE `nombre_bd`.`guardar_nombre` ()
BEGIN
DECLARE ref VARCHAR(20);
DECLARE tiponombre VARCHAR(20);

SELECT c.tx_ref, c.t_name as typeName
INTO ref, tiponombre
FROM content_tx_t_c c
INNER JOIN content_tx__{typeName} as t
ON c.tx_ref = t.ref
WHERE c.c_id IN (8,22,9,23,24,10,3);

/*a continuacion el insert*/
INSERT INTO nombre_tabla_destino(campo1, campo2)
VALUES (ref, tiponombre);

END $$

DELIMITER ;


y la manera de llamarlos en php:

$sqlquery="CALL guardar_nombre()";
mysql_query($sqlquery);

en ocaciones php te marca un error que dice que no puede ejecutar consultas multiples el truco es que solo en el mysql_connect(); se le agregue un false y 65536. ejemplo

mysql_connect("localhost", "root", "123", false, 65536);

en el procedimiento hay otra forma que es mas practica en vez de poner VALUES y las variables, se le pone SELECT que tu hiciste primero.

espero que sea de ayuda, saludos

Etiquetas: variables
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 15:01.