MySQLでIF文をテストするにはどうすればよいですか?クエリがIF
ステートメントに含まれていて何も返されなかった場合、何が起こるのですか?(0行が選択されています)?MySQLでIF文をテストするにはどうしたらいいですか?
つまり、no行が選択されているときに、SELECT
というクエリが返すクエリは何ですか?それはNULL
を返しますか?はいの場合、これはエラーを投げるでしょうか? IF (NULL) THEN ...
?またはこの場合、IF
の文は実行されません。
IF (SELECT banned FROM users WHERE id=new.user_id) THEN
// do stuff
注:banned
列が0
または1
のいずれかが含まれ
は現実には、私はこのようなコードを持っています。
私が知りたいのは、クエリが行を返さないときに自分のコードが安全であることですか?私はそれがエラーを投げるか何も起こらないことを意味する(ちょうどそのIF
ステートメントは実行されません)?
は、私はmyselftそれをテストしたいことを記述、私は、私は、MySQLでIF
ステートメントをテストすることができますかわかりません。たとえば、私はこのコードでテストしたい:
BEGIN
IF (SELECT banned FROM users WHERE id=new.user_id) THEN
SELECT 'test';
ENDIF;
END
しかし、上記のコードは実行されません。だから私はこの質問をしました。
SQLにIF文が含まれていません。ストアドプロシージャを書くことはできますが、MySQL固有のもので、他のリレーショナルデータベースでは実行されません。 – duffymo
@duffymoありがとうございました..あなたの言ったことは、私のコードがうまくいかない理由を説明しています。サブクエリが何も返さず、IF文に入るときに何が起こるか教えてください。それはエラーを投げるか、単に 'ELSE'ブロックを実行するでしょうか? – stack