sql >> Database >  >> RDS >> Mysql

Codeigniter:Fout in ORDER BY CASE-query

De CodeIgniter-documentatie geeft aan dat case-statements binnen de order by-clausule niet worden ondersteund binnen de Active Record-klasse. Ik raad aan om de SQL-aanroep te herstructureren, zodat de case-instructie deel uitmaakt van de select-clausule. Iets als het volgende zou het lukken.

$this->db->select("p.*,u.firstname, u.lastname,s.title AS industry, pt.type_name, al.length_value, CASE p.submit_to WHEN 'writer' THEN 2 WHEN 'students' THEN 1 ELSE 0 END AS ordered_submit_to",FALSE);
$this->db->from($this->_tbl_projects . ' as p');
$this->db->join($this->_tbl_client_details . ' as c', 'c.id = p.client_id', 'left');
$this->db->join($this->_tbl_users . ' as u', 'u.id = c.user_id', 'left');
$this->db->join($this->_tbl_project_types . ' as pt', 'pt.project_type_id = p.project_type_id', 'left');
$this->db->join($this->_tbl_specializations . ' as s', 's.specialization_id = p.specialization_id', 'left');
$this->db->join($this->_tbl_article_length . ' as al', 'al.article_length_id = p.article_length_id', 'left');
$this->db->order_by('ordered_submit_to', 'ASC');
$this->db->order_by('p.request_end_date', 'ASC');


  1. Leer 2 met meerdere indexen

  2. Beheer MDF-bestanden in SQL Server 2019

  3. MySQL Select en IF()-instructie

  4. MySQL-zelfstudie - Een beginnershandleiding om MySQL te leren