Mysql
 sql >> Base de données >  >> RDS >> Mysql

Colonne inconnue 'x' dans 'clause where'

Bien que j'aie souligné ce que l'erreur pourrait être dans votre code sql, je voudrais donner plus de détails à ce sujet.

That Stored Procedure Runing at MySql WithOut any problems but when send Delphi parameters to sp , i get that Error !! Mais vous vous trompez.

Il y a a known bug dans la création de votre procédure. En raison de la raison pour laquelle une exception d'exécution a été déclenchée .
Semantics of Stored procedure code is not checked at CREATE time. At runtime, undeclared variables are detected, and an error message is generated for each reference to an undeclared variable. However, SP's seem to believe any reference denotes a column, even though the syntactic context excludes that. This leads to a very confusing error message in case the procedure.

Un exemple de test standard est illustré ci-dessous :

mysql> drop procedure proc_test;
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter //
mysql> CREATE PROCEDURE proc_test()
    -> BEGIN
    ->     select current_day;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

Ici, vous pouvez comprendre que la compilation de la procédure a été ignorée quel current day est.

mysql> delimiter ;
mysql> call proc_test();
ERROR 1054 (42S22): Unknown column 'current_day' in 'field list'
mysql>

Avec cela, vous devez comprendre que That Stored Procedure Runing at MySql WithOut any problems ... n'est pas correcte.

Une solution rapide à votre requête résoudra le problème. Vous avez mentionné que I defined input parameters with _ prefix. I don't know waht i must do ! . Si c'est vrai, alors
modifiez

SELECT * FROM bimar WHERE `_code_ehda_konandeh` = `code_ehda_konandeh`

à

SELECT * FROM bimar WHERE `code_ehda_konandeh` = _code_ehda_konandeh

et ça devrait marcher. Ici, j'ai supposé code_ehda_konandeh est une colonne du tableau bimar aussi.