我的查询有问题,因为我真的不知道该写什么。我希望从我的数据中获取数据库中的值,该数据位于以逗号分隔的数组中。 假设我的控制器上有这种方法
query_array = array(
'tags' => explode("%2C", $this->input->get('tags'))
);
然后我目前在我的模型上有这个查询。
if(strlen($query_array['title'])) {
$this->db->select("
si.song_info_file_name AS filename,
si.song_info_revised_file_name AS revised_filename,
si.song_info_original_title AS title,
a.artist_name AS artist,
si.song_info_id AS songinfoid,
array_to_string(array_agg(c.composer_name),'/') AS composer,
array_to_string(array_agg(p.publisher_name),'/') AS publisher,
array_to_string(array_agg(st.tag_name),',') AS tags"
);
$this->db->from('song_info si');
$this->db->join('original_artist a', 'si.artist_id = a.artist_id', 'left');
$this->db->join('composer c', 'si.composer_id = c.composer_id', 'left');
$this->db->join('publisher p', 'si.publisher_id = p.publisher_id', 'left');
$this->db->join('song_info_tags sit', 'si.song_info_id = sit.song_info_id', 'left');
$this->db->join('song_tags st', 'st.tag_id = sit.tag_id', 'left');
$this->db->like('LOWER(a.artist_name)', strtolower($query_array['title']));
$this->db->group_by(array("si.song_info_id", "a.artist_name", "c.composer_name" , "p.publisher_name" ));
$query = $this->db->get();
return $query->result_array();
}
'tags' => explode("%2C", $this->input->get('tags'))
的价值是Array ( [0] => 4,10,11,14 )
,如果我已经爆炸了它。我现在的问题是,我如何能够将其添加到我的select LIKE
条件中?例如,来自数组结果的LIKE tag_id =
。我真的需要一些帮助,因为我现在仍然坚持使用这个。