2015-10-28 56 views
1

而經由框架生成查詢笨在FIND_IN_SET添加IS NULL

$this->db->select('id,memo,sent_to,sent_by,read_by,date')->from('memos') 
    ->where("FIND_IN_SET('1',`sent_to`)")->order_by('`id`','DESC')->get(); 

我得到添加的誤差爲在查詢NULL自動

它產生

SELECT `id`, `memo`, `sent_to`, `sent_by`, `read_by`, `date` FROM `memos` 
WHERE FIND_IN_SET('1',`sent_to`) IS NULL ORDER BY `id` DESC 

而不是

SELECT `id`, `memo`, `sent_to`, `sent_by`, `read_by`, `date` FROM `memos` 
WHERE FIND_IN_SET('1',`sent_to`) ORDER BY `id` DESC 

回答

2

您需要添加!=0是你where clause去除IS NULL

$this->db->select('id,memo,sent_to,sent_by,read_by,date')->from('memos') 
    ->where("FIND_IN_SET('1',`sent_to`)!=",0)->order_by('`id`','DESC')->get(); 
+0

剛剛升級到3.1.2,我發現這個問題真的很煩人。感謝您的解決方案。 –

1

使用此

$query = $this->db->query("SELECT * FROM memos WHERE FIND_IN_SET('1',sent_to) ORDER BY id DESC"); 
$result = $query->result_array(); 
return $result; 

result_array();本作將數據返回爲目標陣列

+0

你檢查過了嗎? –

1

您只需編寫串一個MySQL查詢變量和使用 $this->db->query('');,而不是運行使用活動記錄。

P/s:對不起,我英語不好。

3

以下代碼100%的工作。 試試吧,

$this->db->select('id,memo,sent_to,sent_by,read_by,date'); 
    $this->db->from('memos'); 
    $this->db->where("FIND_IN_SET('1',`sent_to`) !=", 0); 
    $this->db->order_by('`id`','DESC'); 
    $this->db->get();