在PHP中使用Case when语句的算术运算(codeigniter)

时间:2015-07-07 01:19:08

标签: php codeigniter math

我想在某些条件下更新DURASI_KENDALA列。这是我在model.php上的代码

public function durasikendala() {
        $str = "UPDATE dbhpl.pelayanan SET pelayanan.DURASI_KENDALA = "
                . "CASE WHEN pelayanan.ID_KENDALA == 1 OR pelayanan.ID_KENDALA == 2 OR "
                . " pelayanan.ID_KENDALA == 6 OR pelayanan.ID_KENDALA == 7"
                . " THEN pelayanan.ESTIMASI "
                . " WHEN pelayanan.ID_KENDALA == 3 OR pelayanan.ID_KENDALA == 4 OR "
                . " pelayanan.ID_KENDALA == 8 OR pelayanan.ID_KENDALA == 9"
                . " THEN pelayanan.LAMA "
                . " WHEN pelayanan.ID_KENDALA == 5 THEN (pelayanan.LAMA - pelayanan.HARI_LIBUR) END";
        $this->db->query($str);
        if ($this->db->affected_rows() > 0) {
            return true;
        } else {
            return false;
        }
    }

但是,代码无法运行,因为操作aritmetic:

WHEN pelayanan.ID_KENDALA == 5 THEN (pelayanan.LAMA - pelayanan.HARI_LIBUR)

条件是 如果ID_KENDALA = 5,那么DURASI_KENDALA = LAMA - HARI_LIBUR

int中的数据类型已经相同。

我该如何解决这个问题?

0 个答案:

没有答案