2017-11-27 1 views
-1

Zuerst, tut mir leid für schlechtes Englisch.bedingte Änderung von Daten in komplexen MySQL (Mariadb) Tabelle nach Zeitraffer

MariaDB []> desc articles; 
+ ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- + 
| Field | Type | Null | Key | Default | Extra | 
+ ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- + 
| id | int (10) unsigned | NO | PRI | NULL | auto_increment | 
| user_id | int (10) unsigned | NO | MUL | NULL | | 
| title | varchar (191) | NO | MUL | NULL | | 
| content | text | NO | | NULL | | 
| created_at | timestamp | YES | | NULL | | 
| updated_at | timestamp | YES | | NULL | | 
| limit_count | int (11) | NO | | 0 | | 
+ ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- + 

Es gibt viele Beiträge in Artikeln.
Ich möchte die 'limit_count' jedes Beitrags in Mariadb um die verstrichene Zeit (aktuelle Zeit - create_at) jedes Beitrags erhöhen.

Ich habe Folgendes versucht, aber ich denke nicht, dass es abgeschlossen ist.

UPDATE articles 
    SET limit_count = limit_count + ((NOW() - created_at) * 10) 
    WHERE exists (select * from articles where limit_count> 0); 

Wie kann ich das programmieren, um zu arbeiten?
Danke für Ihre Hilfe.

Antwort

1

** stark die WHERE Klausel

WHERE limit_count> 0 

vereinfachen ** Sie nicht Arithmetik mit NOW() direkt tun können. Anstelle von NOW() - created_at möchten Sie vielleicht

UNIX_TIMESTAMP() - created_at 
Verwandte Themen