Construire une requête dynamiquement
Bonjour,
je désire construire une requête SQL dynamiquement depuis une procédure stockée. Voici mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
DELIMITER $$
DROP PROCEDURE IF EXISTS `qbcdev2`.`prc_test`$$
CREATE DEFINER=`qbcdev2`@`%` PROCEDURE `prc_test`(param_test_1 int)
BEGIN
declare borne int default 0;
declare requete varchar(500) default 'Select id_joueur from joueur inner join web_users on joueur.id_user = web_users.id_user';
if param_test_1 = 0 then
if borne = 0 then
set requete = concat(requete, ' where web_users.username = ', param_test_1 );
else
set requete = concat(requete, ' and web_users.username = ', param_test_1 );
end if;
set borne = borne + 1;
end if;
prepare finalRequete from @requete;
execute finalRequete;
DEALLOCATE PREPARE finalRequete;
END$$
DELIMITER ; |
Cependantsi je mets le paramètre à 0.
Pour ainsi que mon string soit complété de " where web_users.username = 1".
Par contre je reçois le message d'erreur suivant:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NULL' at line 1
Merci et bonne fin de journée
Gabriel Deschênes