Codeigniter Mysql列,带有逗号分隔值

时间:2018-03-14 05:39:52

标签: php mysql codeigniter codeigniter-3

我想测试一个具有针对单个值的多个值的字段,我的SQL就像。



WHERE id (1);




数据库值类似于



id
---
1,2

2,3

1,3,4






$this->db->select('*');
$this->db->from('content');
$this->db->where('name', $name);
$this->db->where('id', $id);




我试过



$this->db->where_in('id', explode(',', $id));




但它不起作用。请帮我解决这个问题。

3 个答案:

答案 0 :(得分:3)

要查找给定集中的值,您可以使用FIND_IN_SET

$this->db->where("FIND_IN_SET(".$id.",id) >", 0);

注意:这种类型的设计被认为是一种糟糕的设计,你应该规范化你的结构,我建议你看一下Database Normalization

答案 1 :(得分:2)

如果您使用like()代替where()

,该怎么办?
$this->db->like('id', $id);
// Produces: WHERE `id` LIKE '%2%' ESCAPE '!'
  

注意:如果2为值2,则22222将通过此

答案 2 :(得分:0)

请尝试这个:

$this->db->select('*')->from('table_name')
       ->where("column_name LIKE '%$key_values%'")->get();