【问题标题】:select all rows with empty fileds Laravel选择所有带有空字段的行 Laravel
【发布时间】:2021-11-19 08:32:15
【问题描述】:

我想从$result 获取所有行,其中skillIdsubjectId 文件为空并且当两者都为空时。我已经尝试如下,它没有按预期工作。我怎样才能做到这一点?

$result= Course::findOrFail($row);
if(empty($result['skillId']) || ($result['subjectId'])){
   
   $data['id']=$result['id'];
    $data['course']=$result['course'];
}

【问题讨论】:

  • findOrFail() 根据 id 获取一条记录。如果你想要多条记录,你需要get()。这些是 Laravel Eloquent 基础知识和一个简单的 where is null 查询。请阅读文档。
  • @GertB。你能提供那个where is null query你的意思是因为我很困惑吗?
  • 不,您可以在文档中找到它们。 laravel.com/docs/8.x/queries#additional-where-clauses.
  • 根据你的问题,据我了解你应该试试这个。 $result= Course::where("skillId", null)->orWhere("subjectId", null)->get();
  • @RamChander whereNull / whereNotNull / orWhereNull / orWhereNotNull ?

标签: php laravel eloquent laravel-8 query-builder


【解决方案1】:

试试这个解决方案:

$result= Course::where('id', $row)
                 ->where(function($query) {
                       $query->whereNull('skillId')
                      ->orWhereNull ('subjectId');
                  })
                 ->first();

if(!empty($result))
{
   return $result;
}

我试过这个查询,它对我有用。

SELECT * FROM course
WHERE id = 1
and (skillId IS NULL OR subjectId IS NULL)

【讨论】:

  • 返回null
  • 你的数据库有任何行的技能 ID 或主题 ID 为空?
  • 是的。有 3 行 skillIdsubjectId 均为空
【解决方案2】:
$result= Course::where("skillId", null)->orWhere("subjectId", null)->get();

现在您无需检查条件,只需获取数据即可。

$id=$result['id'];
$course=$result['course'];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-15
    • 1970-01-01
    相关资源
    最近更新 更多