CodeIgniter 查询生成器 Class 嵌套查询
CodeIgniter Query Builder Class nested query
我的这个查询在 mysql 上运行良好,但我无法在 CodeIngniter 的查询生成器 Class 上运行它。这是一个有多个输入的搜索框。
我已经试过了,但没能成功。
$this->db->like('num_articulo ', $aricle_number, 'after');
$array = array('descripcion1' => $article_description, 'descripcion2' => $article_description)
$this->db->or_like($array);
$this->db->where('status', 1);
return $this->db->get('articulos')->result_array();
这是我的sql
SELECT * FROM articulos WHERE num_articulo LIKE 'yyyyy%' AND (descripcion1 LIKE '%xxxx%' OR descripcion2 LIKE '%xxxx%')
可能不是最好的做法,但效果很好。
$this->db->like('num_articulo', $number, 'after');
$this->db->where('status', 1);
$this->db->where('(descripcion1 LIKE "%'.$search_data.'%" OR descripcion2 LIKE "%'.$search_data.'%")');
return $this->db->get('articulos')->result_array();
CodeIgniter 查询生成器有一个巧妙的 query grouping 功能:
$this->db->group_start()
$this->db->group_end()
因此,您的查询看起来像,以纯 QB 方式:
$this->db->like('num_articulo ', $aricle_number, 'after');
$this->db->group_start();
$this->db->like('descripcion1', $article_description);
$this->db->or_like('descripcion2', $article_description);
$this->db->group_end();
$this->db->where('status', 1); // This one doesn't seem to appear in your query example?
$this->db->get('articulos')->result_array();
您将得到以下查询:
SELECT * FROM `articulos` WHERE `num_articulo` LIKE 'yyyyy%' ESCAPE '!' AND ( `descripcion1` LIKE '%xxxx%' ESCAPE '!' OR `descripcion2` LIKE '%xxxx%' ESCAPE '!' ) AND `status` = 1
注意:CodeIgniter 在内部添加 ESCAPE '!'
以识别转义符号。
我的这个查询在 mysql 上运行良好,但我无法在 CodeIngniter 的查询生成器 Class 上运行它。这是一个有多个输入的搜索框。
我已经试过了,但没能成功。
$this->db->like('num_articulo ', $aricle_number, 'after');
$array = array('descripcion1' => $article_description, 'descripcion2' => $article_description)
$this->db->or_like($array);
$this->db->where('status', 1);
return $this->db->get('articulos')->result_array();
这是我的sql
SELECT * FROM articulos WHERE num_articulo LIKE 'yyyyy%' AND (descripcion1 LIKE '%xxxx%' OR descripcion2 LIKE '%xxxx%')
可能不是最好的做法,但效果很好。
$this->db->like('num_articulo', $number, 'after');
$this->db->where('status', 1);
$this->db->where('(descripcion1 LIKE "%'.$search_data.'%" OR descripcion2 LIKE "%'.$search_data.'%")');
return $this->db->get('articulos')->result_array();
CodeIgniter 查询生成器有一个巧妙的 query grouping 功能:
$this->db->group_start()
$this->db->group_end()
因此,您的查询看起来像,以纯 QB 方式:
$this->db->like('num_articulo ', $aricle_number, 'after');
$this->db->group_start();
$this->db->like('descripcion1', $article_description);
$this->db->or_like('descripcion2', $article_description);
$this->db->group_end();
$this->db->where('status', 1); // This one doesn't seem to appear in your query example?
$this->db->get('articulos')->result_array();
您将得到以下查询:
SELECT * FROM `articulos` WHERE `num_articulo` LIKE 'yyyyy%' ESCAPE '!' AND ( `descripcion1` LIKE '%xxxx%' ESCAPE '!' OR `descripcion2` LIKE '%xxxx%' ESCAPE '!' ) AND `status` = 1
注意:CodeIgniter 在内部添加 ESCAPE '!'
以识别转义符号。