【问题标题】:"AND", "OR" with Like operator using Codeigniter使用 Codeigniter 使用 Like 运算符的“AND”、“OR”
【发布时间】:2015-12-23 06:48:45
【问题描述】:
$this->db->select('customer.*, feedback.*,feedback.id as fid');
$this->db->join('customer', 'customer.feedbackID = feedback.id', 'left outer');
$this->db->where('feedback.retail_id', $this->session->userdata('store_id'));
$this->db->where('feedback.fb_date BETWEEN "' . date('Y-m-d', strtotime($this->input->post('fromdate'))) . '" AND "' . date('Y-m-d', strtotime($this->input->post('todate'))) . '"');
$extra_where = explode(' ', $post_parameter);
foreach ($extra_where as $value) {`
        `$this->db->or_like('feedback.comments', $value);`
}
$this->db->like('feedback.comments', $this->session->userdata('search_text'));
$data['data'] = $this->db->get('feedback')->result();

我的问题,我正在使用ORAND,比如运算符然后数据没有正确获取。

MySQL 查询:

SELECT `customer`.*, `feedback`.*, `feedback`.`id` as fid
FROM (`feedback`)
LEFT OUTER JOIN `customer` ON `customer`.`feedbackID` = `feedback`.`id`
WHERE `feedback`.`retail_id` =  '1'
AND `feedback`.`fb_date` BETWEEN "2015-08-01" and "2015-08-31"
AND  `feedback`.`comments`  LIKE '%Stock%'
OR  `feedback`.`comments`  LIKE '%not%'
OR  `feedback`.`comments`  LIKE '%Found%'

示例:获取 aug 的数据,然后数据应该匹配,Stock 没有找到键,仅适用于 8 月,但也显示 6 月的数据,因为该行中存在“not”关键字.

我对@9​​87654326@ 和AND 感到困惑,我什么时候必须使用。

【问题讨论】:

    标签: mysql codeigniter


    【解决方案1】:

    试试这个

    $query = $this->db->query(
        "SELECT customer.*,feedback.*,feedback.idas fid
        FROM feedback AS feedback
        LEFT OUTER JOIN customerONcustomer.feedbackID=feedback.id
        WHERE feedback.retail_id=  '1'
        AND feedback.fb_date BETWEEN '2015-08-01' AND '2015-08-31'
        AND feedback.commentsLIKE '%Stock%'
        OR feedback.commentsLIKE '%not%'
        OR feedback.commentsLIKE '%Found%'");
    $result = $query->result_array();
    return $result;
    

    【讨论】:

    • 谢谢你的帮助....但是没有工作先生....它正在获取 7 月、8 月、spet 的数据...
    • @phpdeveloperci 将您的正确查询添加到此。这项工作很好。不是我的
    • 是的,有一些更正,也完成了......但是没有工作,先生......
    • 所以实际上问题在于您的 SQL 查询
    【解决方案2】:

    使用以下代码:

    $this->db->select('customer.*, feedback.*,feedback.id as fid');
    $this->db->join('customer', 'customer.feedbackID = feedback.id', 'left outer');
    $this->db->where('feedback.retail_id', $this->session->userdata('store_id'));
    $this->db->where('feedback.fb_date BETWEEN "' . date('Y-m-d', strtotime($this->input->post('fromdate'))) . '" AND "' . date('Y-m-d', strtotime($this->input->post('todate'))) . '"');
    
    $this->db->group_start();
    $this->db->like('feedback.comments',$this->session->userdata('search_text'));
    $extra_where = explode(' ', $post_parameter);
    foreach ($extra_where as $value) {`
            `$this->db->or_like('feedback.comments', $value);`
    }
    $this->db->group_end()
    $data['data'] = $this->db->get('feedback')->result();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 2017-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多