私はCASE文を使って、MySQLでストアドプロシージャを使用しています。空の結果セットを選択する方法は?
CASEのELSE節(デフォルトと同じです):空の結果セットを選択して返したいので、ELSEの大文字小文字を処理しないでSQLエラーをスローしないでください。空の結果セットを通常のクエリで行が返されない場合
は、これまでのところ私のような何か使用して、そうするために管理してきました:
Select NULL From users Where False
をしかし、私はこの例では、「ユーザー」のように、既存のテーブルに名前を付ける必要があります。 これは動作しますが、最終的に使用されたテーブル名の名前が変更されたり破棄されたりすると、壊れないより洗練された方法が好まれます。
私はSelect NULL Where False
を試しましたが、動作しません。
Select NULL
を使用すると、空のセットは返されませんが、NULLと名前がNULLの列が1行あります。
実際に存在することを保証できる単一の表がなかったのは奇妙なスキーマです。 – onedaywhen
あなたはそうです。多くのテーブルが存在しますが、問題は、テーブルを1つ選択すると、将来そのテーブルが削除されるか名前が変更されると、あなたが書いたコードは機能しなくなり、何も持たないソフトウェアお互いに関係していますが、一方では一方の変更によって他方が機能しなくなります。それはカップリングと呼ばれ、ソフトウェアでのカップリングは一般的には悪い考えです。 – Petruza
@Petruza:Access/Jetを使用した時代に、私のスキーマには、この目的のための永続的な補助表が 'RowRowTable'として追加されました。 – onedaywhen