Ho bisogno di passare una serie di stringhe come parametro ad una routine memorizzata MySQL. La matrice potrebbe essere lunga e il suo numero di elementi non è fisso. Poi voglio mettere i valori stringa in una tabella in memoria con una colonna, quindi posso lavorare con i dati. Non so se questo può essere fatto in MySQL. Forse sono necessari soluzioni sporche.Passare array alla routine memorizzata MySQL
Ad esempio, ho le stringhe Banana, Mela, e arancione. Ora voglio ottenere dati su questi frutti dalla mia tabella MySQL Fruits
. pseudo codice:
create function GetFruits(Array fruitArray)
declare @temp table as
fruitName varchar(100)
end
@temp = convert fruitArray to table
select * from Fruits where Name in (select fruitName from @temp)
end
Microsoft SQL Server consente di utilizzare il tipo di dati e presentare TEXT
l'array come una stringa XML, rapidamente creando la tabella in memoria. Tuttavia, non penso che la tecnica sia possibile in MySQL.
Qualsiasi aiuto su come farlo sarebbe apprezzato!
Sarebbe questo metodo essere suscettibile di attacco SQL injection? – pixelfreak
Penso che sia lo stesso di eseguire comandi INSERT, SELECT o etc. – Devart
Questo è hacky. Direi di usare un join con un tavolo temporaneo. – bobobobo