sql >> Databáze >  >> RDS >> Mysql

Codeigniter:Chyba v dotazu ORDER BY CASE

Dokumentace CodeIgniter uvádí, že příkazy typu case v rámci klauzule order by nejsou podporovány v rámci třídy Active Record. Doporučil bych refaktorovat volání SQL tak, aby byl příkaz case součástí klauzule select. Něco jako následující by mělo stačit.

$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. Povolení dvoufaktorové autentizace pro ScaleGrid DBaaS

  2. Při pokusu o instalaci Perl-Mysql DBD nelze najít mysql_config

  3. Existuje nějaký způsob, jak automaticky vytvořit spouštěč při vytváření nové tabulky v MySQL?

  4. Vyhněte se JTextField setText opakování v programu