我想从php传递一个数组数组到mysql存储过程作为参数列表以及如何使用存储过程中的数组。该过程中的查询有三个IN语句,所以我想做IN(@listOfids)
其中@listOfids是1,2,3,4(来自php的内部数组)。将数组传递到存储过程
7
A
回答
5
所以我就一种变通方法,其是连接查询和参数,以便伪代码是通过PHP例如传入
CREATE 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,参数2,参数3是内爆阵列(“1,2 ,3,4' )。希望这可以帮助别人
+0
@Aemem - 如果上述解决方案适用于您,请将您的答案标记为可接受的答案,这样您的问题就不会再出现在“未答复”列表中。 – Guss 2009-02-28 14:17:52
1
我认为这里的主要问题是MySQL不支持将数组作为数据类型。您需要与包含外键的另一个表格形成one-to-many关系返回到主数据和数组的数据。
0
我想你必须把它作为csv传入。 Mysql对于循环等并不是很友好,所以你最好在外面做。至于存储过程语言去我发现Mysql真的缺乏。
相关问题
- 1. 将数组传递给存储过程
- 2. 存储过程 - 将两个值传递到存储过程
- 3. 将负值传递到存储过程
- 4. 如何将数组数组传递给Oracle存储过程?
- 5. 将参数传递给存储过程
- 6. 传递数组到MySQL存储例程
- 7. 如何将2D数组传递给存储过程?
- 8. 将结构数组传递给Oracle存储过程(CFMX)
- 9. 如何传递数组并将其返回给存储过程?
- 10. 如何将值的“数组”传递给我的存储过程?
- 11. 通过存储过程传递参数
- 12. 将数组传递到全局过程
- 13. 将VARBINARY传递给存储过程
- 14. 将列表传递给存储过程
- 15. 通过引用传递/存储数组?
- 16. 将数据从C#传递到Oracle存储过程
- 17. 将数据帧内容传递到SQL存储过程
- 18. 将参数作为Xml传递到存储过程
- 19. 无法将GUID参数传递到存储过程
- 20. 如何将参数传递到存储过程从php
- 21. 如何将数据库名称传递到存储过程?
- 22. 从集成服务包将参数传递到存储过程
- 23. 将参数从vbscript传递到oracle存储过程
- 24. 将语句之间的倍数传递到存储过程
- 25. 如何将数字列表传递到存储过程?
- 26. 如何将参数值从Asp.net传递到SSRS存储过程?
- 27. 存储过程传递参数
- 28. 如何将Oracle Apex页面中的值数组传递到Oracle存储过程
- 29. 通过WCF服务将int列表传递到存储过程
- 30. ASP.Net VB存储过程允许空参数 - 如何将NULL为空的整数传递到存储过程
您可以通过编辑您的答案发布部分代码,以便我们可以更好地理解您尝试实现的目标并从那里开展工作? – lpfavreau 2009-02-27 16:14:50