Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête CodeIgniter :Comment déplacer une valeur de colonne vers une autre colonne de la même ligne et enregistrer l'heure actuelle dans la colonne d'origine ?

Essayez comme ceci :

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

Faites particulièrement attention au set() le 3ème paramètre de l'appel. false empêche CodeIgniter de citer le 2ème paramètre - cela permet à la valeur d'être traitée comme une colonne de table et non comme une valeur de chaîne. Pour toutes les données qui ne nécessitent pas de traitement spécial, vous pouvez regrouper toutes ces déclarations dans le $data tableau.

La requête générée par le code ci-dessus :

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