Bei der Arbeit mit String-Arrays variabler Länge kann die Übergabe als Parameter an in MySQL gespeicherte Routinen eine Herausforderung darstellen. Um dies zu umgehen, besteht eine alternative Lösung darin, die Array-Werte in einer einzigen Zeichenfolge zu verketten und vorbereitete Anweisungen zu verwenden.
Der folgende Codeausschnitt beschreibt den Prozess:
DELIMITER $$ CREATE PROCEDURE GetFruits(IN fruitArray VARCHAR(255)) BEGIN SET @sql = CONCAT('SELECT * FROM Fruits WHERE Name IN (', fruitArray, ')'); PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt; END $$ DELIMITER ;
Um diese gespeicherte Prozedur zu verwenden , können Sie eine String-Variable mit durch Kommas getrennten Array-Werten initialisieren und die Prozedur aufrufen, indem Sie die Variable als Argument übergeben:
SET @fruitArray = '\'apple\',\'banana\''; CALL GetFruits(@fruitArray);
Diese Lösung ermöglicht Ihnen effektiv um ein Array von Zeichenfolgenwerten an eine in MySQL gespeicherte Routine zu übergeben und mit den Daten in einer In-Memory-Tabelle zu arbeiten.
Das obige ist der detaillierte Inhalt vonWie kann ich String-Arrays an gespeicherte MySQL-Prozeduren übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!