Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Consulta CodeIgniter:Como mover um valor de coluna para outra coluna na mesma linha e salvar a hora atual na coluna original?


Tente assim:
$data = array('current_login' => date('Y-m-d H:i:s'));
$this->db->set('last_login', 'current_login', false);
$this->db->where('id', 'some_id');
$this->db->update('login_table', $data);

Preste atenção especial ao set() 3º parâmetro da chamada. false impede o CodeIgniter de citar o 2º parâmetro -- isso permite que o valor seja tratado como uma coluna de tabela e não como um valor de string. Para quaisquer dados que não precisem de tratamento especial, você pode agrupar todas essas declarações no $data variedade.

A consulta gerada pelo código acima:
UPDATE `login_table`
SET last_login = current_login, `current_login` = '2018-01-18 15:24:13'
WHERE `id` = 'some_id'