Php Laravel逻辑运算符中的查询
我想查询一下Laravel DB,比如Php Laravel逻辑运算符中的查询,php,mysql,laravel-5,Php,Mysql,Laravel 5,我想查询一下Laravel DB,比如 SELECT * FROM `tickets` WHERE (created_at > '2015-07-01' AND created_at < '2015-07-31') AND (state != 'Resolved' OR state != 'closed' OR state != 'Cancelled' OR state != 'Solution Rejected') ORDER BY `id` DE
SELECT * FROM `tickets`
WHERE (created_at > '2015-07-01'
AND created_at < '2015-07-31')
AND (state != 'Resolved'
OR state != 'closed'
OR state != 'Cancelled'
OR state != 'Solution Rejected')
ORDER BY `id` DESC
PS:或者,有没有办法让我用这个来代替
SELECT * FROM `tickets`
WHERE ( (created_at > '2015-07-01'
AND created_at < '2015-07-31')
OR (updated_at > '2015-07-01'
AND updated_at < '2015-07-31') )
AND (state != 'Resolved'
OR state != 'closed'
OR state != 'Cancelled'
OR state != 'Solution Rejected')
ORDER BY `id` DESC
从'tickets'中选择*
其中((创建于>'2015-07-01'
并于<'2015-07-31'创建了_)
或(更新日期:2015-07-01)
并于<'2015-07-31')更新
和(状态!=“已解决”
或状态!=“已关闭”
或状态!=“已取消”
或状态!=“解决方案已拒绝”)
按`id`DESC订购
试试这个,先生:
DB::table('tickets')
->whereBetween('created_at',[$start, $end])
->orWhere(function($query)
{
$query->where('state', '!=', 'Resolved')
->where('state', '!=', 'closed')
->where('state', '!=', 'Cancelled')
->where('state', '!=', 'Solution Rejected')
->orderBy('id', 'desc');
})
->get();
状态!='已解决“或状态!=”closed'…
将始终为true,因为状态不能同时具有多个值,请重试。“对不起,是的,我修好了。。。它的工作原理是产生结果,但我认为它没有按照我想要的逻辑工作。我认为它显示的是日期,而不是美国。但我需要再检查一遍。我的提示是,一个不应该返回任何结果的查询实际上返回了太多的结果,以至于服务器超时
DB::table('tickets')
->whereBetween('created_at',[$start, $end])
->orWhere(function($query)
{
$query->where('state', '!=', 'Resolved')
->where('state', '!=', 'closed')
->where('state', '!=', 'Cancelled')
->where('state', '!=', 'Solution Rejected')
->orderBy('id', 'desc');
})
->get();