Php Laravel逻辑运算符中的查询

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

我想查询一下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` 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();