微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用whereYear Laravel查询生成器在值为null时切换到其他字段

如何解决使用whereYear Laravel查询生成器在值为null时切换到其他字段

我对使用whereYear在第二个字段为空时打开其他字段有疑问。

比如说我们有这个数据库

+------------+------------+
| field_one  | field_two  |
+------------+------------+
| 2020       | NULL       |
+------------+------------+

我想在field_one的值为空时切换到field_two。使用orWhere无效,因为如果条件不匹配或为假,orWhere会切换到字段1。我不确定orWhere是否是解决方案。

$year = Carbon::Now()->year;
$table = DB::table('my_table')
            ->where(function($table) use ($year) {
                $table->whereYear('year','=',$year)
                      ->orWhereYear('year',$year);
            })->count();

提前谢谢!

解决方法

您可以将原始查询与IFNULL()结合使用-whereYear()基本上将MySQL函数YEAR()应用于日期时间,我们可以手动将其与{{1}结合起来},如果第一列为IFNULL(),则会选择第二列。

NULL

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。