从表中选择,其值以逗号分隔

时间:2017-11-13 10:47:52

标签: php mysql arrays codeigniter

我的查询有问题,因为我真的不知道该写什么。我希望从我的数据中获取数据库中的值,该数据位于以逗号分隔的数组中。 假设我的控制器上有这种方法

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 =。我真的需要一些帮助,因为我现在仍然坚持使用这个。

0 个答案:

没有答案