我想在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条记录。
答案 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();