sql >> Database teknologi >  >> RDS >> Mysql

Codeigniter :Fejl i ORDER BY CASE-forespørgsel

CodeIgniter-dokumentationen indikerer, at sagsudsagn inden for orden efter klausul ikke understøttes i Active Record-klassen. Jeg vil anbefale at omfaktorere SQL-kaldet, så case-sætningen er en del af select-sætningen. Noget som det følgende burde gøre tricket.

$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. Sådan fungerer IF-erklæringen i SQL Server

  2. MySQL 5.5 udenlandsk nøgle begrænsning mislykkes, når der findes en fremmed nøgle

  3. Oracle SQL GROUP BY ikke en GROUP BY udtrykshjælp

  4. 11 måder at finde dublerede rækker, der har en primær nøgle i Oracle