Estoy tratando de pasar una matriz de valores de php a mysql procedimientos almacenados como lista de parámetros y cómo usar la matriz dentro del procedimiento almacenado. La consulta en el procedimiento tiene tres instrucciones IN allí, por lo que me gustaría hacer IN(@listOfids)
donde @listOfids es 1,2,3,4 (una matriz implosionada de php).Pasar matriz a un procedimiento almacenado
Respuesta
Así que tiene una solución que es para concatenar la consulta y los parámetros de modo que el pseudo código es
arraysCREATE PROCEDURE `related_stories`(IN param1 VARCHAR(255), IN param2 VARCHAR(255), IN param3 VARCHAR(255), IN publishDate INT(11), IN tlimit INT(11))
BEGIN
SET @query =CONCAT('
select s.* from
(
select * from
(
SELECT something where condition IN (',param1,')
) as table1
UNION ALL
select * from
(
SELECT something where condition IN (',param2,')
) as table2
UNION ALL
select * from
(
SELECT something where condition IN (',param3,')
) as table3
) as s
WHERE (s.publish_date < ',publishDate,')
GROUP BY id limit ',tlimit,';');
PREPARE stmtInsert FROM @query;
EXECUTE stmtInsert;
END
param1, param2, param3 se implosión que se pasa a través de php por ejemplo ('1,2 , 3,4 '). Espero que esto ayude a alguien
@Akim: si la solución anterior funciona para usted, marque su respuesta como la aceptable para que su pregunta no aparezca más en la lista "sin respuesta". – Guss
Lo intenté pero recibí un mensaje que decía que tenía que esperar 48 horas antes de aceptar mi propia respuesta. – Akeem
Gracias, eso es lo que necesitaba en un apuro. Creo que es posible volcar la lista de identificación en una tabla temporal, pero lo haré cuando tenga más tiempo. – MvcCmsJon
Creo que el principal problema aquí es que MySQL no admite matrices como tipo de datos. Debe formar una relación one-to-many con otra tabla que contenga una clave externa de vuelta a sus datos principales y los datos de la matriz.
Creo que tiene que pasarlo como un csv. Mysql no es muy amigable con los bucles, por lo que es mejor que lo hagas fuera de todos modos. En cuanto a los lenguajes de procedimientos almacenados, encuentro que Mysql realmente no existe.
- 1. Pasar una matriz de parámetros a un procedimiento almacenado
- 2. ¿Cómo pasar una matriz 2D a un procedimiento Almacenado?
- 3. Pasar datatable a un procedimiento almacenado
- 4. Pasar parámetros como Xml a un procedimiento almacenado
- 5. Cómo llamar a un procedimiento almacenado desde otro procedimiento almacenado?
- 6. Ejecutar un procedimiento almacenado dentro de un procedimiento almacenado
- 7. ¿Cómo puedo pasar una "matriz" de valores a mi procedimiento almacenado?
- 8. Procedimiento almacenado al ejecutar otro procedimiento almacenado
- 9. Llamar a un procedimiento almacenado con asp.net
- 10. Llamar a un procedimiento almacenado python
- 11. Llamar a un procedimiento almacenado en un procedimiento almacenado en MySQL
- 12. Cómo pasar un parámetro a un SQL de empleo que ejecutar un procedimiento almacenado
- 13. VBScript: ¿Pasar un parámetro con un valor nulo a un procedimiento almacenado?
- 14. ¿Cómo pasar una lista separada por comas a un procedimiento almacenado?
- 15. Cómo guardar un procedimiento almacenado?
- 16. Necesito convertir el campo de Texto a Varchar temporalmente para poder pasar a un procedimiento almacenado
- 17. C#: pasar un tipo definido por el usuario a un procedimiento almacenado de Oracle
- 18. TSQL: llame a un procedimiento almacenado desde otro procedimiento almacenado y lea el resultado
- 19. Cómo llamar a un procedimiento almacenado (con parámetros) desde otro procedimiento almacenado sin tabla temporal
- 20. ¿Cómo programar un procedimiento almacenado?
- 21. Para pasar filas masivas de datos al procedimiento almacenado
- 22. Classic ADO.NET - ¿Cómo pasar UDT al procedimiento almacenado?
- 23. Pasando uniqueidentifier parámetro a un procedimiento almacenado de
- 24. SQL: cláusula in en procedimiento almacenado: cómo pasar valores
- 25. Consultar resultados de un procedimiento almacenado
- 26. pasar el procedimiento array a oráculo
- 27. Cómo pasar una variable nula a un procedimiento almacenado de SQL de código C# .NET
- 28. Pasar una estructura de lista como argumento a un procedimiento almacenado
- 29. ¿Puede pasar el número 'SUPERIOR' como parámetro a un procedimiento almacenado?
- 30. ¿Cómo pasar una cantidad variable de parámetros a un procedimiento almacenado de SQL Server?
¿Podría publicar parte de su código editando su respuesta para que podamos entender mejor lo que está tratando de lograr y trabajar desde allí? – lpfavreau