У меня есть 2 столбца, оба имеют значения с запятыми keyword_whomtoteach и area_tutor, когда я передаю несколько значений в $ area и $ keyword_whomtoteach Я не получаю правильный вывод Я использую этот запрос
$toteach=1,5 $area=1,5
$search = "keyword_whomtoteach IN (".$toteach.")";
$where = "area_tutor IN (".$area.")";
$this->db->where($search);
$this->db->or_where($where);
$query=$this->db->get();
return $result = $query->result_array();
здесь я получаю правильный результат, но проблема в том, что мне нужно что-то вроде этого
если
id keyword_whomtoteach area_tutor
1 1,2,3,4,5 1,2
2 2,3,5 2,3
3 5,6,7 1,4
4 1,5,6 5,6
Я хочу что-то вроде, когда я передаю $ toteach = 1 и $ area = 1,5 в этот момент времени, я должен получить оба идентификатора 1 и 4, так как оба имеют ключевое слово keyword_whometoteach = 1,5
Вы должны заменить column_name IN('1,5')
синтаксис с FIND_IN_SET(1, column_name) AND FIND_IN_SET(5, column_name)
или же FIND_IN_SET(1, column_name) OR FIND_IN_SET(5, column_name)
(в зависимости от желаемого результата).
Тем не менее, ваша схема не является хорошим способом для хранения этих данных. Обычной практикой было бы создание второй таблицы и сохранение списка с разделителями-запятыми в этой таблице. Читать Действительно ли плохо хранить список с разделителями в столбце базы данных? для получения дополнительной информации о том, как и почему.
У вас также есть ошибки синтаксиса PHP ($toteach=1,5 $area=1,5
должно быть $toteach='1,5'; $area='1,5';
) и ваш запрос MySQL требует кавычек $toteach
а также $area
,
Других решений пока нет …