Efter att ha granskat din kommentar angående det fasta uttalandet men omedelbart andra problem, stod det klart att du inte använder detta inom en lagrad procedur eller funktion. Dokumentationen för flödeskontrolluttalanden
säger mycket subtilt att de måste vara inom lagrade procedurer/funktioner.
Uppdatera din kod så att den ligger inom en procedur och anropa sedan proceduren för att exekvera:
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();
Observera också att jag lade till en catch-all ELSE
blockera; om du inte fångar värdet, CASE
kommer att skicka en "Case not found"-varning - vilket kanske är önskvärt eller inte.