web-dev-qa-db-ja.com

MySQLで条件ステートメント(IF)を作成するにはどうすればよいですか?

以下の単純なクエリの何が問題になっていますか?私はそれをグーグルしようとしましたが見つかりませんでした

IF 1 = 1 THEN
  SELECT 1;
ELSE
  SELECT 12;
END IF;
3
Dinesh

必要なのは CASE expression です。これは、条件付きの実装であり、すべての主要なデータベースでサポートされている標準SQLメソッドです。

SELECT CASE WHEN 1 = 1 THEN 1 ELSE 12 END;

または、 まったくばかげた独自のIFステートメント を使用できます。

SELECT IF( 1=1, 1, 12 );
5
Evan Carroll

構文は実際には有効だと思います。 MySQLのドキュメントで同様のステートメントを見つけることができます。

ただし、これは制御フローステートメントと見なされ、MySQLのストアドプログラムでのみ許可されます。これはストアドプログラムの内部にあるとは言わないので、そうではないと思います。正しい場合は、質問を編集して詳細を入力してください。

これをoutsideストアドプログラムで実行しようとしている場合は、 Evan Carroll の回答を参照してください。

5
RDFozz