señorita...
No me ha salido.
El error que tienes es que dentro de una sentencia preparada no puedes llamar una variable, por lo que dice que no está declarada. Efectivamente la solución a tu problema es abrir la sentencia concatenada mediante un cursor para posteriormente acceder al valor true o false del count respectivo.
Ahora el problema es para abrir un cursor enviandole una sentencia SQL que es generada en una variable.
Encontré en esta
pagina la forma como supuestamente se puede abrir un cursor con SQL dinamico, pero para serte sincero no me ha funcionado.
llegué hasta aca
Código MySQL:
Ver originalDELIMITER $$
SET query
= CONCAT("SELECT IF(COUNT(*)>=1,TRUE,FALSE) AS existe1 FROM ",vtabla
," WHERE codigo = '",vcodigo
,"'"); --PREPARE stmt
FROM @query
; EXEC('DECLARE cur CURSOR FOR ' + query);
OPEN cur;
cur_loop: LOOP
LEAVE cur_loop;
--CLOSE cur;
$$
DELIMITER ;
Pero sin resultados satisfactorios.
Esperemos que un mago de mysql te pueda ayudar a solucionar el problema y de paso nos enseñe algo nuevo