sql - Laravel“wherenotin”语句包含空值是否正常?
问题描述
我将 Laravel 5.6.7 与连接到 SQL Server 2014 的 SQL 服务器驱动程序一起使用。
尝试以下查询时:
Warrant::where('vsStatus',632)
->whereNotIn('vsType',[-26927,-26929])
->whereNotIn('vsCategory',[-15723,-21708,-21708])
->where('Warrant.ORI','XXXXXXXXX')
->join('GlobalJacket','GlobalJacket.JacketID','=','Warrant.JacketID')
->where('GlobalJacket.JacketType','=',2)->get();
我收到了 2 个结果集,其中 vsType = -19325 和 vsType = null
这是调试栏看到的查询:
select * from [Warrant] inner join [GlobalJacket] on [GlobalJacket].[JacketID] = [Warrant].[JacketID] where [vsStatus] = '632' and [vsType] not in ('-26927', '-26929') and [vsCategory] not in ('-15723', '-21708', '-21708') and [Warrant].[ORI] = 'XXXXXXXXX' and [GlobalJacket].[JacketType] = '2'
当直接将其粘贴到 Management Studio 17 中时,我只得到 1 个结果,其中 vsType = -19325
现在我可以轻松地将空值包含到“whereNotIn”值列表中,但是这是设计使然吗?所有的东西都认为'null'不在列表中,但是为什么MMS会忽略null值,而eloquent不会呢?
谢谢您的帮助。
解决方案
推荐阅读
- azure - OAuth2 配置问题:AADSTS50011:请求中指定的回复 url 与为应用程序配置的回复 url 不匹配:
- javascript - 如何删除未命名/已标识的元素并更改另一个父元素属性?
- clojure - Clojure 从函数返回简单的真或假
- c# - GetTypeDescriptor(Type objectType, object instance) 永远不会被调用?
- reactjs - React 路由器和整页覆盖转换
- spring - 如何在不使用本机查询的情况下在休眠 5.0.1 中实现 listagg 功能
- python - Python - 使用正则表达式从文件中提取 yyyyMMddhhmmss
- php - 我的脚本包装在函数中时不会产生任何结果
- java - java支持多重继承吗?
- javascript - 天气应用程序:按钮不显示任何数据