Sto provando a passare una matrice di valori da PHP a stored procedure mysql come elenco di parametri e come utilizzare la matrice all'interno della stored procedure. La query nella procedura ha tre istruzioni IN in là quindi mi piacerebbe fare IN(@listOfids)
dove @listOfids è 1,2,3,4 (una matrice implosa da php).Passa array in una procedura memorizzata
risposta
così ho ottenuto una soluzione che è quello di concatenare la query e parametri in modo che il codice di pseudo
arrayCREATE 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 sono implose che viene passato in via php per esempio ('1,2 , 3,4'). Spero che questo aiuti qualcuno
@Akeem: se la soluzione di cui sopra funziona per te, contrassegna la risposta come risposta accettabile in modo che la tua domanda non venga più visualizzata nell'elenco "senza risposta". – Guss
Ho provato ma ho ricevuto un messaggio che diceva che devo aspettare 48 ore prima di accettare la mia risposta. – Akeem
Grazie, questo è quello che mi serviva in un pizzico. Penso che sia possibile scaricare la lista ID in una tabella temporanea, ma lo farò quando avrò più tempo. – MvcCmsJon
Penso che il problema principale qui sia che MySQL non supporta gli array come tipo di dati. È necessario creare una relazione one-to-many con un'altra tabella che contenga una chiave esterna sui dati principali e i dati dell'array.
Penso che devi passarlo come un csv. Mysql non è molto amichevole con il looping e quindi probabilmente lo faresti meglio al di fuori comunque. Per quanto riguarda i linguaggi memorizzati, trovo che Mysql manchi davvero.
- 1. Chiamare una procedura memorizzata python
- 2. Selezionare e aggiornare in una procedura memorizzata
- 3. Procedura memorizzata più eseguita?
- 4. Procedura memorizzata IF/ELSE
- 5. Come posso modificare una procedura memorizzata?
- 6. Creazione di una procedura memorizzata tramite C#
- 7. Chiamare una procedura memorizzata con asp.net
- 8. aggiunta di una colonna nella procedura memorizzata
- 9. Valore restituito procedura memorizzata PDO
- 10. Come si modifica una procedura memorizzata in MySQL?
- 11. Come eseguire una procedura memorizzata in SQL Server ogni ora?
- 12. Come si esegue una procedura memorizzata in MS Access?
- 13. Chiamare una procedura memorizzata Oracle in Squirrel SQL
- 14. Utilizzo del cursore in un ciclo di una procedura memorizzata
- 15. Entity Framework - valore restituito della procedura memorizzata
- 16. procedura memorizzata chiamata oracle all'interno select
- 17. Come chiamare la procedura memorizzata da sospensione?
- 18. Come sopprimere l'output della procedura memorizzata mysql?
- 19. Procedura memorizzata che esegue un'altra stored procedure
- 20. Procedura memorizzata MySQL con elenco argomenti variabile
- 21. SQL - Procedura memorizzata chiamata per ogni record
- 22. Procedura memorizzata EXEC vs sp_executesql differenza?
- 23. Misurare accuratamente le prestazioni della procedura memorizzata
- 24. La procedura memorizzata MySQL sta causando problemi?
- 25. Come aggiungere una procedura memorizzata Try/Catch a SQL
- 26. Impossibile eseguire una procedura memorizzata MySQL da Java
- 27. Restituisce un messaggio da una procedura memorizzata all'app C#
- 28. Come chiamare una procedura memorizzata MySQL da un codice PHP?
- 29. mysql DICHIARARE MENTRE fuori procedura memorizzata come?
- 30. Cambia il definer della procedura memorizzata
Potresti postare parte del tuo codice modificando la tua risposta in modo che possiamo capire meglio cosa stai cercando di ottenere e lavorare da lì? – lpfavreau