Tôi đang cố gắng chuyển một mảng giá trị từ php đến mysql được lưu trữ như là danh sách tham số và cách sử dụng mảng bên trong thủ tục được lưu trữ. Truy vấn trong thủ tục có ba câu lệnh IN trong đó vì vậy tôi muốn làm IN(@listOfids)
trong đó @listOfids là 1,2,3,4 (mảng được mã hóa từ php).Vượt qua mảng vào một thủ tục lưu sẵn
Trả lời
Vì vậy, tôi có một cách giải quyết mà là để nối các truy vấn và các thông số để mã giả là
mảngCREATE 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 đang nổ tung được thông qua tại qua php ví dụ ('1,2 , 3,4 '). Hy vọng điều này sẽ giúp ai đó
@Akeem - nếu giải pháp ở trên phù hợp với bạn, hãy đánh dấu câu trả lời của bạn là câu trả lời có thể chấp nhận để câu hỏi của bạn sẽ không xuất hiện trong danh sách "chưa được trả lời" nữa. – Guss
Tôi đã thử nhưng tôi nhận được một thông báo nói rằng tôi phải chờ 48 giờ trước khi chấp nhận câu trả lời của riêng tôi. – Akeem
Cảm ơn, đó là những gì tôi cần trong một nhúm. Tôi nghĩ rằng có thể đổ danh sách id vào một bảng tạm thời nhưng tôi sẽ làm điều đó khi tôi có nhiều thời gian hơn. – MvcCmsJon
Tôi nghĩ rằng vấn đề chính ở đây là MySQL không hỗ trợ mảng dưới dạng kiểu dữ liệu. Bạn cần phải tạo mối quan hệ one-to-many với một bảng khác có chứa khóa ngoại trở lại dữ liệu chính của bạn và dữ liệu của mảng.
Tôi nghĩ bạn phải chuyển nó dưới dạng csv. Mysql không phải là rất thân thiện với looping và như vậy có lẽ tốt nhất của bạn làm nó bên ngoài anyways. Theo như ngôn ngữ thủ tục lưu trữ đi tôi tìm thấy Mysql thực sự là thiếu.
- 1. Tạo một thủ tục lưu sẵn qua C#
- 2. Làm thế nào để gọi thủ tục lưu sẵn từ một thủ tục lưu sẵn khác?
- 3. SQL: trong mệnh đề trong thủ tục lưu sẵn: cách vượt qua các giá trị
- 4. Chỉ hiệu lực INSERT qua thủ tục lưu sẵn
- 5. Thực hiện một thủ tục được lưu trữ trong một thủ tục lưu sẵn
- 6. cách lưu các thủ tục lưu sẵn SQL vào tệp .sql qua lô
- 7. Thực hiện một thủ tục lưu sẵn trong một thủ tục lưu sẵn khác trong máy chủ SQL
- 8. Thủ tục lưu trữ thực hiện một thủ tục lưu sẵn
- 9. Gọi thủ tục lưu sẵn với asp.net
- 10. TSQL: Gọi thủ tục lưu sẵn từ một thủ tục lưu sẵn khác và đọc kết quả
- 11. Mẫu JDBC Spring để gọi Thủ tục lưu sẵn
- 12. MS SQL: Loại bỏ giá trị trả về của thủ tục lưu sẵn được gọi trong thủ tục lưu sẵn
- 13. Làm thế nào tôi có thể lặp qua một recordset trong một thủ tục lưu sẵn?
- 14. Cách sao lưu các thủ tục lưu sẵn trong MySQL
- 15. Sự khác biệt giữa các thủ tục lưu sẵn và các thủ tục lưu sẵn mở rộng
- 16. Cách lấy lỗi sql trong thủ tục lưu sẵn
- 17. Tham số "Boolean" cho thủ tục lưu sẵn Oracle
- 18. Làm thế nào để sử dụng một giá trị từ một thủ tục lưu sẵn trong một thủ tục khác?
- 19. Oracle: Thủ tục lưu sẵn Java gửi thông báo JMS
- 20. Đếm kết quả của thủ tục lưu sẵn
- 21. Gọi thủ tục lưu sẵn với các tham số
- 22. Các câu lệnh sau END trong thủ tục lưu sẵn
- 23. Gọi thủ tục lưu trữ từ một thủ tục lưu trữ SQL Server
- 24. ADO.NET cổ điển - Làm thế nào để vượt qua UDT để lưu trữ thủ tục?
- 25. Cách lập lịch thủ tục lưu sẵn trong MySQL
- 26. Tạo các thủ tục lưu sẵn với SQLAlchemy
- 27. Sử dụng thủ tục lưu sẵn trong Rails
- 28. Tạo thủ tục lưu sẵn trong MS Access?
- 29. Các bảng tạm thời trong các thủ tục lưu sẵn
- 30. Gọi thủ tục lưu sẵn của Oracle trong Squirrel SQL
Bạn có thể đăng một phần mã của mình bằng cách chỉnh sửa câu trả lời để chúng tôi có thể hiểu rõ hơn về những gì bạn đang cố gắng đạt được và làm việc từ đó không? – lpfavreau