如何使用查询构建在 Laravel 中执行 WHERE NOT

Posted

技术标签:

【中文标题】如何使用查询构建在 Laravel 中执行 WHERE NOT【英文标题】:How to perform a WHERE NOT in Laravel with query build 【发布时间】:2013-10-09 16:25:56 【问题描述】:

Laravel 查询构建有许多 where 选项,但我找不到描述字段类型 timestamp 的方法,这些字段类型不为空,但具有无效值。例如:0000-00-00 00:00:00

whereNull() 不起作用,因为它是 not null

whereNot() 被视为无效字段not

我想使用原生 mysql 查询 NOT field,因为它匹配“空”值,例如 0000-00-00 00:00:00

【问题讨论】:

您要检查那些 0000-00-00 00:00:00 的记录吗? 【参考方案1】:

然后,您必须使用IS NULL 选项来查询它。检查前任:

SELECT * FROM `tablename` WHERE `columnname` IS NULL LIMIT 0 , 30

看看以下是否有帮助

$table->date('colname')->nullable(); 

$table->date('colname')->notnullable(); 

【讨论】:

很好,但我希望它使用 Laravel 框架的原生查询构建器。而IS NULL0000-00-00 00:00:00 不匹配 这个 notNullable() 或 nullable() 怎么样。哪个对你可行! 如 $table->date('colname')->nullable(); 'is null' 检查这个“0000-00-00 00:00:00”并返回相同 然后,试试这个本身并不理想,虽然 SELECT * FROM tn WHERE colname = '0000-00-00 00:00:00' OR SELECT * FROM tn WHERE @ 987654329@ '0000-00-00 00:00:00'

以上是关于如何使用查询构建在 Laravel 中执行 WHERE NOT的主要内容,如果未能解决你的问题,请参考以下文章

在执行查询之前,如何从 Laravel 的查询构建器中获取原始查询字符串?

如何在查询生成器 laravel 中执行此 SQL

如何在 Laravel-5 中构建子查询 [重复]

如何在执行查询之前从Laravel的查询生成器获取原始查询字符串?

如何在 Laravel 中使用查询构建器来做到这一点? (子查询 WHERE NOT IN)

如何使用 Laravel 查询构建器编写嵌套连接?