laravel - 多个where子句,Laravel
问题描述
我尝试使用 2 个 where 子句进行查询,但我得到了一个不好的响应,不知道为什么。
$history = AnswerHistory::where('question_id', '=', $id)
->where(function ($query) {
$query->where('answer_type', '!=', "skipped");
})
->get();
对于特定$id
的数据库,我有 5 行,4 行,answer_type = 'skipped
但 5 行是NULL
.
如果我删除第二个,我得到 5 个包含"skipped"
答案的项目,则我的响应为空。
想要的响应是 1 行,其中answer_type != 'skipped'
.
PS。我也从这里尝试了答案。
解决方案
问题是,一个 varchar 是null
,null
而不是一个有值的 varchar。所以它不能用=
或!=
'字符串'检查。所以你必须检查answer_type
是 != skipped 还是 null
$history = AnswerHistory::where('question_id', '=', $id)
->where(function ($query) {
$query->where('answer_type', '!=', "skipped")
->orWhereNull('answer_type');
})
->get();
推荐阅读
- c# - 如何将嵌套列表中的值复制到新列表中
- tfs - 如何使用 TfvcChangesetRef 获取变更集中的文件
- javascript - Javascript 中的 3D Thinplate 插值“rbf 无法使用给定的中心编译。/nCenters 必须是唯一的:/”
- phpspreadsheet - 如何在phpspreadsheet中设置页面方向(横向或纵向)
- vb.net - 使用 vb.net 将 txt 文件从一个文件夹复制到另一个文件夹时出现错误
- f# - 为什么在静态解析类型参数 (SRTP) 表达式 F# 中使用“或”?
- php - 无法将 php 7.2 连接到 mysql 8.0 服务器请求客户端未知的身份验证方法 [caching_sha2_password]
- python - 将 python 与 openssl 的自定义构建一起使用
- java - 使用 Apache POI 编辑 Excel 文件时出错
- python - Python旋转记录器,如何防止重新启动覆盖日志文件?