douyan4958 2016-10-18 07:40
浏览 61
已采纳

MySQL case当then子句

$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');

It gave an error:

near from "diskusi a, mahasiswa f, dosen g"

I want to relate that if a.pengguna_id like "mhs%" then take data from mahasiswa f and if a.pengguna_id like "dos%" then take data from dosen g. I am Using Codeigniter, but if you have some correction to SQL syntax I will try to understand.

  • 写回答

2条回答 默认 最新

  • douyan1903 2016-10-25 19:41
    关注

    Try profiling your model with

    $this->output->enable_profiler(TRUE);
    

    the check sql syntax with query result.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程