sql >> Databasteknik >  >> RDS >> Mysql

Codeigniter :Fel i ORDER BY CASE-frågan

CodeIgniter-dokumentationen indikerar att fallbeskrivningar inom order by-klausulen inte stöds inom Active Record-klassen. Jag skulle rekommendera att omfaktorisera SQL-anropet så att case-satsen är en del av select-satsen. Något i stil med följande borde göra susen.

$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. Virtuella kolumner och funktionella index

  2. Hur kan jag jämföra tid i SQL Server?

  3. Ofångat undantag 'PDOException' med meddelandet 'SQLSTATE[HY093]:Ogiltigt parameternummer'

  4. MYSQL ställer in tidszon i PHP-kod