2013-07-07 2 views
14

Я пишу запрос в codeigniter с функцией FIND_IN_SET().

$this->db->where(FIND_IN_SET('".$value."',employer_job_location)); 
    $query_res= $this->db->get("employer_posted_jobs"); 
    echo $this->db->last_query(); exit; 

Это приносит

SELECT * 
FROM (`employer_posted_jobs`) 
WHERE (FIND_IN_SET('Delhi',employer_job_location)) IS NULL 

В приведенном выше запросе "IS NULL" является дополнительной, и это очень раздражает. Может ли кто-нибудь сказать, почему это идет с запросом? Спасибо ..

+0

может [это] (http://formyhelp.blogspot.in/2009/08/codeigniter-tweak-for-findinset.html) help? – Prasanth

+0

Код был приятный, но я использую имя столбца из таблицы, и я не могу добавить функцию escape в имя столбца –

ответ

18

Вы всегда должны проверить результаты от FIND_IN_SET() функцию как-то заставить его работать, попробуйте следующее:

 
$this->db->where("FIND_IN_SET('$value',employer_job_location) !=", 0); 
+0

Спасибо за ваш ответ. Однако он работал с немного другим синтаксисом: $ this-> db-> где (FIND_IN_SET ('". $ Value."', Employer_job_location)! = 0); –

+0

+1 для вопросов и ответов, потому что это помогло. –

+0

Вы всегда можете сделать '$ this-> db-> где (sprintf (" find_in_set ('% d', employer_job_location)! = ", $ Value), 0);' – seangates

0

$ this-> db-> где ("FIND_IN_SET (» $ value ', employer_job_location)! = ", 0);