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