mysql - stored - sql like variable
¿Cómo pasar una variable a una cláusula IN? (4)
pasar una cadena usando una variable fue un problema asumir esta solución
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `spTestListValues`(_list varchar(200))
BEGIN
SET @LIST=_list; -- assume this a paramter from the stored procedure
SELECT NULL AS Id, '''' AS Description --insert null value to be used for list box population
UNION
(SELECT id, Description
FROM test_table
WHERE FIND_IN_SET(id,@LIST) ORDER BY Description ASC) ;
END
Llamar al procedimiento desde otra ventana de consulta
call `spTestListValues`(''4,5,3''); --no paramter currently for test
salida
ID Description
NUll
1 TEST1
4 TEST2
5 TEST3
Digamos que tengo un SP que tiene una instrucción SELECT
siguiente manera,
SELECT product_id, product_price FROM product
WHERE product_type IN (''AA'',''BB'',''CC'');
Pero los datos van a esa cláusula IN
debe ser a través de una sola variable que contiene la cadena de valores. Algo a continuación
SELECT product_id, product_price FROM product
WHERE product_type IN (input_variables);
Pero no está funcionando de esa manera. ¿Alguna idea de cómo hacer esto?
Intente usar una declaración preparada: http://dev.mysql.com/doc/refman/5.5/en/sql-syntax-prepared-statements.html
Pase un valor de parámetro como este - ''AA,BB,CC''
. Entonces, es suficiente usar la función FIND_IN_SET -
SELECT product_id, product_price
FROM product
WHERE FIND_IN_SET(product_type, param);
crea una función definida por el usuario que convertirá el valor separado por comas en una tabla, y al unir esto, dos pueden obtener el resultado deseado.