修正されたステートメントに関するコメントを確認しましたが、すぐに2番目の問題が発生しましたが、ストアドプロシージャまたは関数内でこれを使用していないことが明らかになりました。 フロー制御ステートメントのドキュメントコード>
非常に微妙に、ストアドプロシージャ/関数内にある必要があると述べています。
コードを更新してプロシージャ内に配置し、プロシージャを呼び出して実行します。
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
「ケースが見つかりません」という警告がスローされます。これは望ましい場合と望ましくない場合があります。