2014-05-14 66 views
0

使用codeigniter活动记录方法,我想找出哪些行包含id = 6。
请指教。codeigniter匹配字符串中的数字

$this->db->like('id', 6); 
$this->db->get('mytable'); 

    | id  | 
---+----------+--- 
    | 3,16,8,6 | 
---+----------+--- 
    | 6,66  | 
---+----------+--- 
    | 7,560 | 
---+----------+--- 
+0

你们是不是只匹配6,或匹配66和560呢? –

+0

我只想要id = 6。 – user1884324

+0

数据的结构化方式使得在没有合理复杂的SQL的情况下很难实现。在不了解表结构的更多信息的情况下,我可以假设这些ID映射到其他表,并且您应该在中间(在当前表和这些ID引用的表之间)有一个表,每个都映射关系。另一种选择是选择在字段中有6个的所有记录,然后用PHP循环来确定哪些记录实际上是有效的。如果(in_array(6,explode(',',$ ids))){/ *做东西* /}' –

回答

0

你可以使用FIND_IN_SET,如:

$searchterm = 6; 
$where = "FIND_IN_SET('".$searchterm."', id)"; 
$this->db->where($where); 
$this->db->get('mytable'); 
+0

不客气.. :) –

+0

非常感谢你。有用。 – user1884324