通过将单个值与codeigniter中的逗号分隔记录进行比较来获取数据

时间:2017-03-27 06:45:54

标签: php codeigniter select

我正在尝试从数据库中获取特定作者的帖子数据 我必须按照post_author获取数据 post_author字段包含类似 -

的数据

2,4,5,9
 2,4,5
 4
4
4
10,2,4

如果帖子有多个作者,那么值以逗号分隔的格式存储 我想将post_author(存储在会话admin_id中)与字段post_author进行比较 如果假设我有一个post_author 4,它在所有记录中都可用,那么select query应返回所有记录 我在模型中选择查询 -

$this->db->select('p.ID,p.post_date,p.post_title,p.post_url,u.user_login');
$this->db->from('sa_posts p,sa_users u');
$this->db->where('u.ID=p.post_author');
$this->db->where('p.post_author',$this->session->userdata('admin_id')); // Here is a problem to compare post_author.
$query=$this->db->get();
return $query->result();  

请帮帮我 感谢。

2 个答案:

答案 0 :(得分:2)

在CodeIgniter中尝试以下操作:

替换:

$this->db->where('p.post_author',$this->session->userdata('admin_id'));

有:

$this->db->where(FIND_IN_SET("{$this->session->userdata('admin_id')}", 'p.post_author') != 0);

答案 1 :(得分:0)

进行一些更改后,我使用FIND_IN_SET() -

获得了我想要的输出
$where = "FIND_IN_SET('".$this->session->userdata('admin_id')."', p.post_author)";

$this->db->select('p.ID,p.post_date,p.post_title,p.post_url,u.user_login');
$this->db->from('sa_posts p,sa_users u');
$this->db->where('u.ID=p.post_author');
$this->db->where( $where );
$query=$this->db->get();
return $query->result();