$this->db->select('a.diskusi_id, a.topik_id, a.diskusi_komentar, a.diskusi_file, a.pengguna_id');
$this->db->select('CASE WHEN a.pengguna_id LIKE "mhs%" THEN (select f.mahasiswa_id, f.mahasiswa_nama, f.mahasiswa_nim) WHEN a.pengguna_id LIKE "dos%" THEN (select g.dosen_id, g.dosen_nama, g.dosen_nidn)');
$this->db->where('CASE WHEN a.pengguna_id LIKE "mhs%" THEN a.pengguna_id = f.mahasiswa_id WHEN a.pengguna_id LIKE "dos%" THEN a.pengguna_id = g.dosen_id');
$query = $this->db->get('diskusi a, mahasiswa f, dosen g');
它给出了一个错误:
near from "diskusi a, mahasiswa f, dosen g"
我想说明如果a.pengguna_id像“mhs%”
然后从mahasiswa f
获取数据并且如果a.pengguna_id像“dos%”
然后从dosen g
获取数据。
我正在使用 Codeigniter,但如果您对 SQL 语法有一些更正,我会尝试理解。
最佳答案
尝试使用以下方法分析您的模型
$this->output->enable_profiler(TRUE);
用查询结果检查sql语法。
关于php - MySQL Case when then 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40102326/