sql >> データベース >  >> RDS >> Mysql

Codeigniter:ORDERBYCASEクエリでエラーが発生しました

    CodeIgniterのドキュメントには、orderby句内のcaseステートメントがActiveRecordクラス内でサポートされていないことが示されています。ケースステートメントがselect句の一部になるように、SQL呼び出しをリファクタリングすることをお勧めします。次のようなものでうまくいくはずです。

    $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. OracleのREMAINDER()関数

    2. T-SQLを使用してSQLServerでリンクされたサーバーのリストを返す2つの方法

    3. PostgreSQLでの低レベルのリソースプーリングに関するいくつかのアイデア

    4. 結果を自動ロードして、同じ結果を何度も取得します