php - MySQL Case when then 子句

标签 php mysql sql codeigniter case-when

$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/

相关文章:

php - 您的 SQL 语法有误;检查与您的 MySQL 服务器版本对应的手册,了解在第 2 行的 '' '')' 附近使用的正确语法

php - 如何使用php将csv文件上传到mysql?

mysql - 计算员工上个月在工作场所花费的每天平均小时数

mysql - 如何获取表之间的关系并区分一对一和一对多?

php - 如何使用 Mysql PHP 函数从 Mysql 数据库中获取前 2 或 3 行?

php - 一旦我编写了 css 代码并使用 php include 包含 dz 部分,我制作的样式将不再影响 style.css 文件

php - 获取最后一个斜杠后的 URL 值

MySQL 使用 IN/FIND_IN_SET 在子查询中读取多行

sql - 按甲酸盐分组显示数据

php - MySQL "thread safe"是否来自 php 脚本?