Mysql
 sql >> Datenbank >  >> RDS >> Mysql

CodeIgniter-Abfrage:Wie verschiebt man einen Spaltenwert in eine andere Spalte in derselben Zeile und speichert die aktuelle Uhrzeit in der ursprünglichen Spalte?

Versuchen Sie es folgendermaßen:

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

Achten Sie besonders auf set() 3. Parameter des Aufrufs. false verhindert, dass CodeIgniter den 2. Parameter in Anführungszeichen setzt – dadurch kann der Wert als Tabellenspalte und nicht als Zeichenfolgenwert behandelt werden. Für alle Daten, die keiner besonderen Behandlung bedürfen, können Sie alle diese Deklarationen in $data zusammenfassen Array.

Die durch obigen Code generierte Abfrage:

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