Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Codeigniter:Lỗi trong truy vấn ORDER BY CASE

Tài liệu CodeIgniter chỉ ra các câu lệnh trường hợp trong mệnh đề order by không được hỗ trợ trong lớp Active Record. Tôi khuyên bạn nên cấu trúc lại lệnh gọi SQL để câu lệnh trường hợp là một phần của mệnh đề select. Một cái gì đó như sau sẽ thực hiện thủ thuật.

$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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi Varchar sang số để sắp xếp

  2. Những quy tắc nào áp dụng cho việc đặt tên một cột mysql?

  3. Lưu trữ dữ liệu được mã hóa base64 dưới dạng kiểu dữ liệu BLOB hoặc TEXT

  4. Triển khai đa đám mây để nhân rộng MySQL

  5. Trích xuất dữ liệu từ json bên trong trường mysql