Avancé whereNotNull déclaration dans Laravel

Est-il possible d'effectuer les opérations suivantes dans Laravel 4? ...

DB::table('myTable')
    ->select(DB::raw($columnNames))
    ->whereNotNull(function($query) use($columns) {
        foreach ($columns as $column) {
            $query->whereNotNull($column);
        }
    })
    ->get();

Si j'ai le tableau suivant:

table: myTable
id  |   name    |   age     |   weight  
======================================
1    Jane        NULL        150
2    NULL        12          80
3    Bob         NULL        NULL
4    John        22          120
5    Cody        NULL        NULL

Si $columns est [age, weight] et $columnNames est 'age, weight', puis d'appliquer l'-dessus whereNotNull déclaration, je m'attendrais à la sortie comme ceci:

age     |    weight
===================
NULL         150
12           80
22           120

Comment puis-je obtenir ce fait?

Mise à JOUR:

La condition est de retourner toutes les lignes où les colonnes sélectionnées ne sont pas TOUS nuls. Ainsi, un whereNotNull clause doit être appliquée à chaque (sélectionné) de la colonne, dans chaque ligne. Si toutes les colonnes sont NULLES, alors whereNotNull retournera false et que la ligne ne devrait pas faire partie des résultats. Donc, seules les lignes qui ont AU MOINS une valeur non NULL doit être retourné.

  • Si la condition est: au moins l'un des $columns ne peut pas être NULL?
  • J'ai clarifié la condition dans ma question, merci!
InformationsquelleAutor chipit24 | 2014-12-24