Concatenar sql consultas en procedimiento almacendado antes de ejecutar ( prepared statements.)

Buenas tenia la necesidad de juntar un comando sql  si cierta condiciones se queria ( en un reporte)

Ejemplo :  Tengo un comando sql del tipo : SELECT * FROM table1 WHERE fecha between fec1 and fec2

Luego en formulario de reporte hay varias opciones que el usuario puede solicitar si por ejemplo quiere los tipos de comprobantes que solo sean Facturas, hablando en el ambito financiero.

Asi nuestro comando sql puede quedar asi:SELECT * FROM table1 WHERE fecha between fec1 and fec2 and tipo= 'F'

Esta consulta es muy secilla de realizar , juntaondo primero el comando que deseamos ejecutar, mendiante if condicionales. Pero pensaba en la forma de llevar por lo menos el primer comando basico a un stored procedure y luego las condiciones extras concatenar y luego ejecutar. Por ello buscando en google me encontrre con   prepared statements

SET @query = CONCAT('SELECT * FROM table1 WHERE column1 LIKE ''', expression, '%''');
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Saludos
Adalberto Montanía
Fuente:http://stackoverflow.com/questions/18873224/concatening-like-with-stored-procedures-parameter-using-mysql


Comentarios