繁体   English   中英

在 WHERE 条件下使用 BETWEEN

[英]using BETWEEN in WHERE condition

我想要以下功能来选择住宿在某个$minvalue$maxvalue之间的酒店。 什么是最好的方法呢?

function gethotels($state_id,$city,$accommodation,$minvalue,$maxvalue,$limit,$pgoffset)
    {
        $this->db->limit($limit, $pgoffset);
        $this->db->order_by("id", "desc");
        $this->db->where('state_id',$state_id);
        $this->db->where('city',$city);

        // This one should become a between selector
        $this->db->where($accommodation,$minvalue); 

        $result_hotels = $this->db->get('hotels');
        return $result_hotels->result();

   }

你应该使用

$this->db->where('$accommodation >=', minvalue);
$this->db->where('$accommodation <=', maxvalue);

我不确定语法,所以如果它不正确,请原谅。
无论如何BETWEEN是使用 >=min && <=max 实现的。
这就是我的例子的意义。

编辑:
看看这个链接,我想你可以写:

$this->db->where("$accommodation BETWEEN $minvalue AND $maxvalue");

在 Codeigniter 这是检查两个日期记录之间的简单方法...

$start_date='2016-01-01';
$end_date='2016-01-31';

$this->db->where('date BETWEEN "'. date('Y-m-d', strtotime($start_date)). '" and "'. date('Y-m-d', strtotime($end_date)).'"');

听起来正确,但执行此查询可能会产生一些问题:我建议:

$this->db->where( "$accommodation BETWEEN $minvalue AND $maxvalue", NULL, FALSE );

您可能还会遇到错误消息。 “操作数类型冲突:日期与整数不兼容。

在日期周围使用单引号。 例如: $this->db->where("$accommodation BETWEEN '$minvalue' AND '$maxvalue'");

我想我们可以这样写: $this->db->where('accommodation >=', minvalue); $this->db->where('accommodation <=', maxvalue);

//没有美元($)符号这对我有用:)

$this->db->where('accommodation BETWEEN '' . $sdate . '' AND '' . $edate . ''');

这是我的解决方案

检查以下代码。 它对我有用

$dateStart = $this->input->post('dateStart);
$dateTo= $this->input->post('dateTo);
$fromDate=date('Y-m-d',strtotime($dateStart));
$toDate=date('Y-m-d',strtotime($dateTo));
    
$this->db->from('tbl_sales sl');
$this->db->where('DATE(sl.created) >=',$setDate);
$this->db->where('DATE(sl.created) <=',$dateend);
$this->db->get();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM