sql >> Base de Datos >  >> RDS >> Mysql

Consulta de CodeIgniter:¿Cómo mover un valor de columna a otra columna en la misma fila y guardar la hora actual en la columna original?

Prueba así:

$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 especial atención al set() 3er parámetro de la llamada. false evita que CodeIgniter cite el segundo parámetro; esto permite que el valor se trate como una columna de tabla y no como un valor de cadena. Para cualquier dato que no necesite un tratamiento especial, puede agrupar todas esas declaraciones en $data matriz.

La consulta generada por el código anterior:

UPDATE `login_table`
SET last_login = current_login, `current_login` = '2018-01-18 15:24:13'
WHERE `id` = 'some_id'