Po přezkoumání vašeho komentáře týkajícího se opraveného příkazu, ale hned druhého problému, bylo jasné, že to nepoužíváte v rámci uložené procedury nebo funkce. Dokumentace pro příkazy řízení toku
velmi jemně uvádí, že musí být v rámci uložených procedur/funkcí.
Aktualizujte svůj kód tak, aby byl součástí procedury, a pak stačí zavolat proceduru, která se má provést:
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();
Všimněte si také, že jsem přidal univerzální ELSE
blok; pokud nezachytíte hodnotu, CASE
zobrazí varování „Případ nenalezen“ – což může nebo nemusí být žádoucí.