2016-06-06 2 views
-3

У меня есть два столбца, у которых есть значения с запятой 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 и $ площадь = 1,5 в этой точке времени я должен получить как id 1, так и 4, так как оба имеют ключевое слово_whomeoteach = 1,5

+0

Возможный дубликат [FIND \ _IN \ _SET() vs IN()] (http://stackoverflow.com/questions/4155873/find-in-set-vs-in) –

+0

Я видел этот пример, но я я не могу переустановить @matt raines – Sumit

+0

Почему вы не можете нормально нормализовать свои данные? Это устранит необходимость поиска сложных и неэффективных рабочих мест. –

ответ

0

Вы должны заменить синтаксис 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) (в зависимости от желаемого результата).

Однако ваша схема не является хорошим способом хранения этих данных. Стандартной практикой было бы создать вторую таблицу и сохранить список разделенных запятыми в этой таблице. Прочтите Is storing a delimited list in a database column really that bad? для получения дополнительной информации о том, как и почему.

У вас также есть ошибки синтаксиса PHP ($toteach=1,5 $area=1,5 должен быть $toteach='1,5'; $area='1,5';) и ваш запрос MySQL требует кавычки $toteach и $area.

+0

Я только что дал демо-данные ok, я пройду через эту ссылку – Sumit

Смежные вопросы