Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Coluna desconhecida 'x' na 'cláusula where'


Embora eu tenha apontado qual poderia ser o erro em seu código sql, gostaria de dar mais detalhes sobre ele.

That Stored Procedure Runing at MySql WithOut any problems but when send Delphi parameters to sp , i get that Error !! Mas você está errado.

a known bug na criação do seu procedimento. Devido ao motivo pelo qual uma exceção de tempo de execução foi gerada .
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.

Um exemplo de teste padrão é mostrado abaixo:
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)

Aqui você pode entender que a compilação do procedimento ignorou em qual current day é.
mysql> delimiter ;
mysql> call proc_test();
ERROR 1054 (42S22): Unknown column 'current_day' in 'field list'
mysql>

Com isso, você deve entender que That Stored Procedure Runing at MySql WithOut any problems ... não está correto.

Uma correção rápida para sua consulta resolverá o problema. Você mencionou que I defined input parameters with _ prefix. I don't know waht i must do ! . Se isso for verdade, então
mude
SELECT * FROM bimar WHERE `_code_ehda_konandeh` = `code_ehda_konandeh`

para
SELECT * FROM bimar WHERE `code_ehda_konandeh` = _code_ehda_konandeh

e deve estar funcionando. Aqui eu assumi code_ehda_konandeh é uma coluna da tabela bimar também.