我想從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