这是SQL查询运行:
SELECT * FROM (`news`) WHERE `country` IS NULL AND `region` IS NULL ORDER BY IFNULL(update_date, `create_date)` DESC
你可能会注意到create_date有一些格式错误,我想禁用转义,但即使我在order_by函数后添加false也没有效果。怎么解决?非常感谢
$this->db->select('*');
$this->db->from('news');
$this->db->where($data);
$this->db->order_by('IFNULL(update_date,create_date)', 'DESC', false);
$query = $this->db->get();
return $query->result_array();
答案 0 :(得分:7)
使用以下代码:
$ this-> db-> _protect_identifiers = FALSE;
$ this-> db-> order_by(' IFNULL(update_date,create_date)',' DESC',false);
$ this-> db-> _protect_identifiers = TRUE;
答案 1 :(得分:2)
在数据库选择方法的基础上添加此行。
$this->db->_protect_identifiers = FALSE;
答案 2 :(得分:0)
仅进行更新,尝试使带乘法的sql选择适用于C.I。 3.10
$this->db->order_by("results.result * 1", 'ASC', FALSE);
只需将FALSE添加到order_by即可解决,因为$ this-> db-> _ protect_identifiers触发了C.I上的错误。 3.10