通过 codeigniter 框架生成查询
$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();
我在查询中自动添加 IS 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
答案 0 :(得分:4)
以下代码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();
答案 1 :(得分: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();
答案 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();
这将返回数据作为目标数组
答案 3 :(得分:1)
您只需要为字符串变量编写一个mysql查询并使用它来运行它
$this->db->query('');
而不是使用有效记录。
P / s:抱歉我的英语不好。
答案 4 :(得分:0)
find_in_set()
返回数值,这就是为什么我们需要使用关系运算符来评估条件的原因
像
$this->db->where("FIND_IN_SET('x',field_list)>0");