Mysql
 sql >> Database >  >> RDS >> Mysql

Query CodeIgniter:come spostare il valore di una colonna in un'altra colonna nella stessa riga e salvare l'ora corrente nella colonna originale?

Prova in questo modo:

$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);

Presta particolare attenzione a set() 3° parametro della chiamata. false impedisce a CodeIgniter di citare il 2° parametro:ciò consente di trattare il valore come una colonna di tabella e non come un valore stringa. Per tutti i dati che non necessitano di un trattamento particolare, puoi raggruppare tutte quelle dichiarazioni nel $data matrice.

La query generata dal codice sopra:

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