Sau khi xem xét nhận xét của bạn về câu lệnh đã sửa nhưng vấn đề thứ hai ngay lập tức, rõ ràng là bạn không sử dụng điều này trong một quy trình hoặc hàm được lưu trữ. Tài liệu cho câu lệnh điều khiển luồng
tuyên bố rất tinh tế rằng chúng cần phải nằm trong các thủ tục / chức năng được lưu trữ.
Cập nhật mã của bạn để nằm trong một thủ tục, sau đó chỉ cần gọi thủ tục để thực thi:
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();
Cũng lưu ý rằng tôi đã thêm một ELSE
tóm tắt tất cả khối; nếu bạn không bắt được giá trị, CASE
sẽ đưa ra cảnh báo "Không tìm thấy trường hợp" - điều này có thể mong muốn hoặc không.