Si necesitamos crear crear una consulta SQL que se vaya armando según algunos patrones, ya sean hechos por el usuario o algunos datos y no queremos crear muchos querys distintos y empezar a evaluar cual se ejecutará podemos recurrir a los SQL Dinámicos.
El mismo es soportado por la mayoría de los motores de base de datos, y en esta entrega veremos como hacerlo en MySQL, en las siguiente veremos como hacerlo en SQL Server y Oracle.
Consiste en crear una variable de texto (varchar en la mayoría de los casos) e ir armando dentro de ella la consulta a ejecutar, luego simplemente qudaría ejecutar la variable.
CREATE DEFINER = 'root'@'localhost'
PROCEDURE BD.STORED_PROCEDURE_1(IN pListaIds VARCHAR(1000))
BEGIN
-- creamos una variable y concatenamos los textos, la variable
-- pListaIds recibe varios ID concatenados de una vez
SET @Query = CONCAT('update tabla set campoX = algunValor where Id in(',pListaIds,')');
-- preparamos el objete Statement a partir de nuestra variable
PREPARE smpt FROM @Query;
-- ejecutamos el Statement
EXECUTE smpt;
-- liberamos la memoria
DEALLOCATE PREPARE smpt;
END








en
en
en
en
Hola! Existirá alguna forma de almacenar el resultado de la consulta en una variable? Yo necesito que una variable almacene el resultado de una consulta y no se como hacerlo. Gracias de antemano!