Comment puis-je passer un tableau et utiliser où dans la procédure stockée intérieure?
Doit-je concaténer la chaîne d'entrée ou quelque chose? p>
disons P>
DELIMITER $$ DROP PROCEDURE IF EXISTS `abc`.`table1`$$ CREATE PROCEDURE `abc`.`test` (IN somestring VARCHAR(255)) BEGIN SELECT * FROM abc.table1 WHERE flight_type IN somestring END $$ DELIMITER ;
4 Réponses :
Ceci devrait fonctionner aussi longtemps que SAOMESPRING CODE> est du formulaire
"(item1, item2, item3, ... )"
Vous pouvez utiliser wind_in_set () code> si
selstring code> est formaté
a, b, c, d code>:
Qu'en est-il de wind_in_set code> optimisation? Utilise-t-il des index?
Vous pouvez utiliser la concaténation de chaîne et la déclaration de préparation pour exécuter des requêtes construites dynamiquement.
sulsing code> doit être construit dans un format SQL valide comme
'1', '2', '3' code> p>
La réponse acceptée a besoin de modification pour travailler avec ma version de Mariadb.
L'instruction Concat a manqué un point-virgule, l'instruction Exécute a été appelée