2011-07-12 8 views
5

私は、ユーザーが複数のテーブルにわたってフィールドを選択できるスクリプトを持っています。すべての行を取得するにはUnionを使用します。今、私は特定のフィールドが各テーブルに存在するかどうかを示すマッピング配列を持っていますが、そうでなければ"" as field_nameを使用してすべてをチェックします。mysqlに存在しない可能性のある列を照会する方法はありますか?

COALESCEのような、存在しない可能性のある列を参照する方法があるかどうか疑問に思っていたので、列が存在しない場合はエラーをスローするのではなく、既定値を返します。それは助けないように

答えて

1

合体はまだ、フィールド名が必要になります。

... COALESCE(non_existent_field, NULL) 

はまだ存在しないため、フィールドにエラーが発生します。

+0

私は気付きました。すべてのグーグルはこれがオプションではないことを示唆している。私は本当に「存在すれば」のタイプのことを望んでいました。 – Anthony

+0

あなたはinformation_schema.tablesに参加してそれを基にすることができますが、十分な利益が得られないというような多くの仕事のようです。 –

+0

基本的には、私は新しいカスタムフィールドを追加するためのロジックを構築する必要がないようにしようとしています。フロントエンドでは、利用可能なすべてのカスタムフィールド(マッピング配列ですでに使用可能なカスタムフィールドの外)を検索し、ユーザーがカスタムフィールドを選択できるようにします。しかし、提出すると、フィールドをどのテーブルに属しているか、複数のテーブルにまたがっているかを調べるために、同じことを再度実行する必要があります。フィールドが存在しない場合は何も返さないほうがずっと簡単です。しかし、私はそれが選択肢ではないと思う。 – Anthony

関連する問題