晴耕雨読

working in the fields on fine days and reading books on rainy days

/* */ の範囲コメントで排他的に片方のコードのみを有効にする

プログラム内の2つのどちらかを実行したいコーディングを記載しているときに、一方だけを有効にする範囲コメントに書き方について説明します。

C言語やJavaなどでは //*/*///*/ で囲むことで、後者のコードだけが実行され、先頭コメントを /* に変えることで、前者のコードだけが実行されます。

//*
value = 111;
/*/
value = 222;
//*/
/*
value = 111;
/*/
value = 222;
//*/

SQLなら --/*/*/--*/ で囲むことで、後者のコードだけが実行され、先頭コメントを /* に変えることで、前者のコードだけが実行されます。 (2020/6/26追記) SQLite3では問題なくできるのですが、他の環境で実際に試してみると場合によっては構文エラーで怒られてしまいます。どのSQLの実行環境でも使えるわけではないことに注意してください。

--/*
select * from table where condition
/*/
update table set col='value' where condition
--*/
/*
select * from table where condition
/*/
update table set col='value' where condition
--*/

最近のエディタを使っていれば Ctrl + / でコメントアウトできるので、この排他的な範囲コメントの技を使うことはあまりないですが、知っているとデバッグとかが少し楽になります。

以上です。