5

MySQL サーバー バージョン 5.0.45。次の点を考慮してください。

( SELECT CASE 
    WHEN t.group_id = 12 THEN 'yes' 
    ELSE 'no' 
    END
    FROM sample_table t
    WHERE t.user_id = 2
    AND t.group_id = 12 ) as foo

より大きなステートメントのこのサブクエリは、私の予想どおりに機能し、ほとんどの場合、「はい」または「いいえ」の文字列値を生成します。理想的ではありませんが、それは他の誰かのコードで作業することで得られるものです!

ただし、select が正当に空のセットを返す場合があり、その場合、foo は NULL に設定されます。これで実際にアプリケーションが壊れることはありませんが、イライラします。テーブルに一致する行がない場合でも、foo が常に「yes」または「no」であることを保証できる方法はありますか?

4

2 に答える 2