如何在CodeIgniter中编写给定的查询

时间:2015-07-24 08:25:57

标签: php mysql codeigniter

我想在codeigniter中编写给定的查询,我该怎么办?

SELECT * FROM `user` WHERE `id` IN (select `provider_id` from `services`);

我经历了codeigniter的where_in(),但我得到了错误的结果,这就是我所做的,

$this->db->select('*');
$this->db->from(USER);
$this->db->where_in('id', 'select `provider_id` from `services`');
$query = $this->db->get();
return $query->num_rows();

它返回0,而上面的查询,直接在phpmyadmin中运行,返回1条记录。

3 个答案:

答案 0 :(得分:1)

您可以使用这种简单方式$this->db->query('your query');

请查看此帖子,希望它能为您提供帮助Using Mysql WHERE IN clause in codeigniter

答案 1 :(得分:1)

您可以通过将第二个参数作为NULL传递给第三个参数作为FALSE

来在where where中传递直接查询
<?php 
$where = 'id IN (select `provider_id` from `services`)';
$this->db->select('*');
$this->db->from(USER);
$this->db->where($where, NULL, FALSE);
$query = $this->db->get();
return $query->num_rows();

答案 2 :(得分:1)

使用$this->db->query();

$query=$this->db->query("SELECT * FROM `user` WHERE `id` IN (select `provider_id` from `services`)");
$num=$query->num_rows();
$result= $query->result();