php - 你如何在 laravel 5.4 中编写这个 sql 查询?
问题描述
$user= Select from user where 'email' = $email AND 'specialty' =null OR 'address' = null OR 'country' =null OR 'state' = null;
这是我拥有的代码,但它无法正常工作。如果任何所述列的值为空,我想要的是返回该行。
$doctor= Doctor::where('email',$email)->where(function ($query) {
$query->orWhere('state','=','')
->orWhere('country','=','')
->orWhere('address','=','')
->orWhere('specialty','=','');
})->get();
解决方案
首先NULL
应该使用在 SQL 中进行过滤的第一件事where x IS NOT NULL
。
对于 laravel 部分,Eloquent 有一个whereNull
方法,查看更多:https ://laravel.com/docs/5.6/queries
所以你雄辩的代码应该看起来像:
$doctor= Doctor::where('email',$email)->where(function ($query) {
$query->orWhereNull('state')
->orWhereNull('country')
->orWhereNull('address')
->orWhereNull('specialty');
})->get();
推荐阅读
- android - 更改背景时按钮消失
- javascript - 无法使用节点 JS + Cheerio 抓取 html 元素
- c# - c# 使用 Roslyn 以编程方式编译代码时,表达式求值器中出现内部错误
- python - 为什么这不是无限循环?
- r - 如何找到R中两列之间的准确性
- javascript - 下载 JS 文件并使用 NativeScript 作为后台服务运行
- python - MacOS Mojave中安装ucl时出错
- powershell - 使用 Stop-Parsing 从 PowerShell ps1 脚本运行 cmd /c
- javascript - 如何匹配所有内部星号,它们之间没有空格
- charts - ios-charts如何调整饼图高度