Maison > Article > base de données > Comment résoudre MySQL si alors erreur
L'instruction if-then dans MySQL est généralement utilisée pour implémenter le contrôle conditionnel. Son format de base est le suivant :
IF condition THEN statement_list END IF
Parmi eux, la condition est une expression logique. Si l'expression est vraie, l'instruction dans Statement_list sera exécutée, sinon elle ne sera pas exécutée.
Cependant, lorsque nous utilisons des instructions if-then, nous devons prêter attention à certains détails. Ci-dessous, je présenterai plusieurs situations dans lesquelles des erreurs peuvent survenir et proposerai les solutions correspondantes.
1. Le mauvais opérateur est utilisé dans l'expression conditionnelle
L'utilisation du mauvais opérateur dans l'expression conditionnelle entraînera des problèmes avec l'instruction if-then. Par exemple, si des opérateurs de bits (&, |, ^, etc.) ou des opérateurs de concaténation de chaînes (||) sont utilisés dans l'expression conditionnelle, l'erreur suivante se produira :
mysql> IF (1|1) THEN SELECT 'TRUE' ELSE SELECT 'FALSE' END IF; ERROR 1064 (42000): 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 '|1) THEN SELECT 'TRUE' ELSE SELECT 'FALSE' at line 1
Solution : Vérifiez si l'expression conditionnelle est utilisée Si l'opérateur est erroné, il doit être remplacé par le bon opérateur.
2. Il y a une erreur de syntaxe dans l'expression conditionnelle
S'il y a une erreur de syntaxe dans l'expression conditionnelle, cela entraînera une erreur dans l'instruction if-then. Par exemple, s'il manque des parenthèses ou des guillemets dans l'expression conditionnelle, l'erreur suivante se produira :
mysql> IF str = 'hello' THEN SELECT 'TRUE' ELSE SELECT 'FALSE' END IF; ERROR 1064 (42000): 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 '= 'hello' THEN SELECT 'TRUE' ELSE SELECT 'FALSE' at line 1
Solution : Vérifiez s'il y a des erreurs de syntaxe dans l'expression conditionnelle et corrigez-la en conséquence.
3. Erreur de format d'instruction IF
Lors de l'utilisation d'instructions if-then, si le format est incorrect, cela provoquera également des erreurs d'instruction. Si l'instruction END IF est manquante ou si l'espace entre l'instruction IF et l'instruction SELECT est omis, l'erreur suivante se produira :
mysql> IF (1=1) THEN SELECT 'TRUE' ELSE SELECT 'FALSE' -> ; ERROR 1064 (42000): 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 'ELSE SELECT 'FALSE'' at line 1
Solution : Vérifiez si le format de l'instruction IF est correct, utilisez correctement l'instruction END IF, et ajoutez les mots suivants après l'instruction IF. Ajoutez des espaces entre les instructions SELECT.
4. Le résultat de sortie de l'expression conditionnelle est vide
L'instruction IF peut contenir une erreur car le résultat de sortie de l'expression conditionnelle peut être vide. Lorsque les variables de l'expression conditionnelle ne sont pas définies ou que leur valeur est NULL, l'erreur suivante se produira
mysql> IF (a = 1) THEN SELECT 'TRUE' ELSE SELECT 'FALSE' END IF; ERROR 1048 (23000): Column 'a' cannot be null
Solution : Assurez-vous que les variables de l'expression conditionnelle ont été correctement définies et ne sont pas NULL.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!