我想從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. 將Java數組傳遞到存儲過程
- 4. 將負值傳遞到存儲過程
- 5. 如何將數組數組傳遞給Oracle存儲過程?
- 6. 將參數傳遞給存儲過程
- 7. 傳遞數組到MySQL存儲例程
- 8. 傳遞參數到存儲過程
- 9. 將參數從一個存儲過程傳遞到另一個存儲過程
- 10. 如何將數組參數傳遞給存儲過程?
- 11. 將結構數組傳遞給Oracle存儲過程(CFMX)
- 12. 如何將值的「數組」傳遞給我的存儲過程?
- 13. 將數組傳遞給SQL Server存儲過程
- 14. 將存儲過程結果傳遞給數組
- 15. 如何將2D數組傳遞給存儲過程?
- 16. 如何將數組傳遞給SQL存儲過程
- 17. 將字符串數組傳遞給LINQ存儲過程
- 18. 將複合類型的數組傳遞給存儲過程
- 19. 如何傳遞數組並將其返回給存儲過程?
- 20. 通過存儲過程傳遞參數
- 21. 將數組傳遞到全局過程
- 22. 將參數從存儲過程傳遞給函數(在存儲過程中)
- 23. 將scope_identity傳遞給存儲過程
- 24. 將列表傳遞給存儲過程
- 25. 將VARBINARY傳遞給存儲過程
- 26. 將表傳遞給存儲過程
- 27. 通過引用傳遞/存儲數組?
- 28. 將一個數組作爲參數傳遞到Oracle存儲過程
- 29. 如何將參數值從Asp.net傳遞到SSRS存儲過程?
- 30. 無法將參數從jQuery傳遞到存儲過程
您可以通過編輯您的答案發布部分代碼,以便我們可以更好地理解您嘗試實現的目標並從那裏開展工作? – lpfavreau 2009-02-27 16:14:50