【发布时间】:2014-12-24 07:05:21
【问题描述】:
是否可以在 Laravel 4 中执行以下操作? ...
DB::table('myTable')
->select(DB::raw($columnNames))
->whereNotNull(function($query) use($columns) {
foreach ($columns as $column) {
$query->whereNotNull($column);
}
})
->get();
如果我有下表:
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
如果$columns 是[age, weight] 并且$columnNames 是'age, weight',那么应用上面的 whereNotNull 语句,我希望输出如下:
age | weight
===================
NULL 150
12 80
22 120
我怎样才能完成这项工作?
更新:
条件是返回所选列不为空的所有行。因此,whereNotNull 子句必须应用于每行中的每个(选定)列。如果所有列都是 NULL,那么 whereNotNull 将返回 false 并且该行不应该是结果的一部分。因此,应该只返回至少有一个非 NULL 值的行。
【问题讨论】:
-
所以条件是:
$columns至少有一个不能是NULL? -
我已经澄清了我的问题,谢谢!
标签: laravel laravel-4 query-builder