将高级UPDATE查询转换为CodeIgniter Active Record

时间:2013-12-20 10:59:56

标签: php mysql sql codeigniter activerecord

我有这个高级的UPDATE查询:

UPDATE `images` SET `cover` = 
CASE WHEN `image_id` = {$is_cover} THEN 1 
ELSE 0 END WHERE `album_id` = {$album_id}

如何将其转换为CodeIgniter的Active Record呢?

3 个答案:

答案 0 :(得分:1)

请使用此

$this->db
    ->set('cover', 'CASE WHEN `image_id` = $is_cover THEN 1 ELSE 0 END', FALSE)
    ->where('album_id', $album_id)
    ->update('images');

答案 1 :(得分:0)

你可以这样试试

$data   =   array('cover' => 'CASE WHEN `image_id` = {$is_cover} THEN 1 ELSE 0 END');
$where  =   array('album_id' => $album_id);
$this->db
    ->where($where)
    ->update('images',$data);

答案 2 :(得分:0)

您可以使用CodeIgniter查询它:

$this->db->query("UPDATE images SET cover = CASE WHEN image_id = {$is_cover} THEN 1 ELSE   0 END WHERE album_id = {$album_id}");