След преглед на коментара ви относно фиксирания оператор, но незабавен втори проблем, стана ясно, че не използвате това в съхранена процедура или функция. Документацията за изявления за контрол на потокакод>
много фино заявява, че те трябва да бъдат в съхранени процедури/функции.
Актуализирайте кода си, за да бъде в рамките на процедура, и след това просто извикайте процедурата за изпълнение:
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();
Също така имайте предвид, че добавих ELSE
за обхващане на всички блок; ако не хванете стойността, CASE
ще изведе предупреждение „Случаят не е намерен“ – което може или не може да е желателно.