mySQL Si l'instruction
Je suis en train de faire cette Déclaration Si le travail, mais je n'arrive pas à lui faire faire ce que je veux. Si je fais un select @conséquent, Il va me donner la valeur 0, alors pourquoi ne pas l'instruction SI le travail?
SET @message = '((sometihng here))';
select LEFT(@message, 1) into @firstChar;
select STRCMP(@firstChar,'(') into @result;
IF (@result = 0) THEN
SET @message = 'true';
//more selects and cals here;
END IF;
select @message;
Je devrais obtenir vrai, mais je n'ai pas, il m'indique une erreur:
SQL query: IF( @result =0 ) THEN SET @message = 'true';
MySQL a dit:
1064 - Vous avez une erreur dans votre syntaxe SQL; consultez le manuel
correspond à votre versions du serveur MySQL pour la bonne syntaxe à utiliser
près de 'IF (@result = 0) then SET @message = "true" à la ligne 1
OriginalL'auteur Myy | 2012-03-28
Vous devez vous connecter pour publier un commentaire.
essayez d'utiliser la fonction http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html#function_if
OriginalL'auteur Vlad Miller
Comme Max Mara l'a souligné, c'est un bon travail de la marge. La raison pour laquelle le SI n'y avait pas de travail n'est pas parce que la syntaxe est incorrecte, mais parce que le contrôle de flux des fonctions comme SI ... ALORS ne sont valides qu'à l'intérieur de procédures stockées ou des fonctions, Tout cela grâce à @TehShrike
OriginalL'auteur Myy
Le if .. then .. ELSE syntaxe de MySQL n'est disponible que pour le code de procédure (stockées precudures, fonctions, triggers..), mais pas pour les instructions SELECT.
SI D'AUTRE A UTILISÉ DANS UNE PROCÉDURE STOCKÉE EXEMPLE CI-DESSOUS
OriginalL'auteur Rana Aalamgeer