【问题标题】:NOT BETWEEN in codeigniter not working代码点火器中的 NOT BETWEEN 不工作
【发布时间】:2018-05-19 23:43:06
【问题描述】:

我想问一下为什么查询生成器类不包含NOT BETWEEN。我尝试的黑客是这个 ->where('"mytable.date" not between '." $min_date ".' AND '. "$max_date").

它构建了这个查询 AND "mytable"."date" "not" between "2017-5-18" AND 2017-6-7

如何有效地将其与 codeigniter 查询构建器类或活动记录一起使用。

我正在使用postgresql 驱动程序。

【问题讨论】:

    标签: postgresql codeigniter activerecord codeigniter-3 postgresql-9.1


    【解决方案1】:

    我对您的报价感到困惑,您可以尝试使用下面的代码。

    $this->db->where("mytable.date NOT BETWEEN '$min_date' AND '$max_date'");
    

    更新

    我试过 NOT BETWEEN 并且真的不起作用。另一种选择是

    $this->db->where('mytable.date <=', $min_date);
    $this->db->where('mytable.date >=', $max_date);
    

    【讨论】:

    • 对不起,您的查询非常接近它,但它仍然认为不是"not"。我的意思是它正在考虑作为一张桌子。
    • 你的权利。不在 CI 之间不起作用。我更新我的答案
    • 我已经尝试过了,但这并没有查询任何数据,实际上我在主日期查询中使用NOT BETWEEN 作为过滤器。就像我已经有一组日期,但我想从该组中排除日期。
    【解决方案2】:

    请尝试下面的代码,它将在我的代码中正常工作:

    $this->db->where("'mytable.date' NOT BETWEEN  '".$min_date."'  AND '".$max_date."'");
    

    【讨论】:

    • 查询应该是AND "qc_data"."date" NOT BETWEEN '2017-5-18' AND '2017-6-7'您的查询正在打印AND 'qc_data.date' NOT BETWEEN '2017-5-18' AND '2017-6-7'
    • 那你可以试试$this-&gt;db-&gt;where( " record_status='active' AND !( mytable.date BETWEEN '".$min_date."' AND '".$max_date."') ");
    • record_status 有什么意义?
    • 这也不起作用而且!运算符我认为在postgresql中不起作用
    • @fatpotato 根本不是问题 :) ,我真的不知道为什么它不起作用,因为我检查了我的系统它会正常工作,而且互联网有很多示例探索越多,您获得的信息就越多
    猜你喜欢
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-24
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    相关资源
    最近更新 更多