Столбец Mysql Codeigniter с разделенными запятыми значениями

Я wnat, чтобы проверить поле с несколькими значениями против одного значения, мой SQL похож .

WHERE id (1);

значения базы данных как

id
---
1,2

2,3

1,3,4

codeigniter

$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 ответов


что делать, если вы используете like() вместо where()

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

Примечание: если 2-это значение 2,22,222 пройдет через этот


чтобы найти значения из заданного набора, вы можете использовать FIND_IN_SET

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

Примечание: этот тип дизайна считается плохим дизайном, и вы должны нормализовать свою структуру, я предлагаю вам взглянуть на Нормализация Базы Данных


пожалуйста, попробуйте этот:

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