Después de revisar su comentario sobre la declaración fija pero el segundo problema inmediato, quedó claro que no está usando esto dentro de un procedimiento o función almacenados. La documentación para flow control statements
establece muy sutilmente que deben estar dentro de los procedimientos/funciones almacenados.
Actualice su código para estar dentro de un procedimiento, y luego simplemente llame al procedimiento para ejecutarlo:
USE mysql;
DROP PROCEDURE p;
DELIMITER |
CREATE PROCEDURE p() BEGIN
CASE (SELECT COUNT(*) FROM user WHERE User = '' AND Host = 'localhost')
WHEN 1 THEN
DROP USER ''@'localhost';
FLUSH PRIVILEGES;
ELSE
SELECT 'no users found!';
END CASE;
END;
|
CALL p();
También tenga en cuenta que agregué un catch-all ELSE
bloquear; si no capta el valor, CASE
arrojará una advertencia de "Caso no encontrado", que puede o no ser deseable.