2011-09-17 15 views
2

テーブルに約80のカラムがあります。私はテーブルの次のクエリを実行しています。テーブルからNOT NULLカラムを選択する

SELECT * FROM mobile_details WHERE id=4;

上記のクエリは、1行のみを戻すだろうことが確認されました。値がNULLでないか空でない列だけを選択したいとします。これどうやってするの?

注:これを行うには非常に非効率的な方法は、SELECT中にすべての列にNOT NULLを入れることです。しかし、私はより効率的かつ効果的な方法(PHPコードまたはMySQLクエリのいずれか)が必要です。

私はこのような何かを行うことができますか? SELECT * FROM mobile_details WHERE id=4 AND mobile_details.* NOT NULL;

CentOSサーバーでPHP + MySQL + Apacheを使用しています。

+0

は、外貨ですか?あなたはあなたの質問に左の参加をしていますか? –

+0

データベース内で実行され、呼び出すコードの書き方が短く、要求するすべての列が返されないようにする方法はありません。あなたの場合は、すべての列を返すように求めています。 –

+0

@BookoFZEUS: 'ID'はテーブルの主キーです。私は左に参加していません。 –

答えて

6

SQLで列のリストをプログラムで変更することはできません。そのための構文はありません。

+0

結果を '$ result'に格納するとします。どのように効率的にPHPでそれを行うには? –

+0

@iSumitG:===を使って各列をヌルに対してチェックするだけです。 – siride

1

あなたはそうではありません。トリッキーなことができますが、それは価値がありません。データを処理するときにnullカラムをスキップするだけではどうですか? PHPでチェックするのは簡単です。また、本番環境ではSELECT *を使用しないでください。必要な列だけを選択し、すべての列が必要な場合は、すべて列挙します。

1

あなたはPHPでそれを行う必要があります。ヌル値をフィルタリングするには、関数array_filterを使用してください。

関連する問題