Mysql Laravel SQL未按预期执行。没有语法错误

Mysql Laravel SQL未按预期执行。没有语法错误,mysql,laravel-5,Mysql,Laravel 5,任何Laravel开发人员都可以帮助我理解为什么下面的SQL语句不起作用。我没有收到任何错误,它只是没有做它应该做的: DB::table('devices') ->leftJoin('hotel_device','hotel_device.device_id','devices.id') ->where("hotel_device.device_id","IS","NULL") ->delete(); 这将删除leftJoin链接返回为NULL的所有设备id,即在hote

任何Laravel开发人员都可以帮助我理解为什么下面的SQL语句不起作用。我没有收到任何错误,它只是没有做它应该做的:

 DB::table('devices')
->leftJoin('hotel_device','hotel_device.device_id','devices.id')
->where("hotel_device.device_id","IS","NULL")
->delete();
这将删除leftJoin链接返回为NULL的所有设备id,即在hotel_设备表中未使用此设备id的设备

如果我直接在数据库中以原始SQL的形式运行它,它就会正常工作。请注意,是条件而不是=条件,因为我指的是空值。using=未找到任何匹配行

谢谢。

您应该使用whereNull方法与null进行比较,而不是尝试使用常规的where方法对其进行筛选

DB::表“设备” ->leftJoin'hotel_device'、'hotel_device.device_id'、'devices.id' ->whereNullhotel_device.device_id ->删除;
我肯定有口才地使用->whereNull'col'而不是->where'col','IS','NULL',这可能是问题吗?太棒了,非常感谢。我不知道空是什么东西!工作完美。