我的mysql查询下面有这个奇怪的问题。如果我错了,请纠正我。
以下查询(我从Codeigniter打印)给出了主题= 4的结果。
WHERE `notes`.`subject` IN ('4,2') GROUP BY `notes`.`id` ORDER BY `created_date` DESC
但是当我改变了这个
WHERE `notes`.`subject` IN ('2,4') GROUP BY `notes`.`id` ORDER BY `created_date` DESC
没有返回任何结果。这是为什么? 假设我在表中只有一个结果,我正在使用codeigniter。
$this->db->where_in('notes.subject',$this->input->get('subject'));
答案 0 :(得分:2)
in应该有像
这样的参数字符串 IN ('2','4'); // for varchar
IN (2,4) // for Integer values
答案 1 :(得分:1)
试试这样:
WHERE `notes`.`subject` IN ('4','2') ....
for Integers
WHERE `notes`.`subject` IN (4,2) ....
答案 2 :(得分:1)
问题在这里
$this->db->where_in('notes.subject',$this->input->get('subject'));
输入变量主题是例如'2,4'
您可以使用$this->db->where_in('notes.subject',explode(",",$this->input->get('subject')));
将数组传递给where_in
并根据User guide