根据时间流逝对复杂mysql(mariadb)表中的数据进行条件修改

时间:2017-11-27 02:25:31

标签: mysql sql-update mariadb

首先,我很抱歉英语不好。

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 | |
+ ------------ + ------------------ + ------ + ----- + ---- ----- + ---------------- +

文章中有很多帖子 我想增加' limit_count' mariadb中每个帖子的每个帖子的已用时间(当前时间--create_at)。

我尝试了以下内容,但我认为它不完整。

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

我如何编码才能使用?
谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

**大大简化了 WHERE limit_count> 0 子句

NOW()

**您无法直接使用NOW () - created_at进行算术运算。而不是 UNIX_TIMESTAMP() - created_at ,也许你想要

<httpErrors errorMode="Custom" existingResponse="Replace">
            <clear />
            <remove statusCode="403" />
            <remove statusCode="404" />
            <remove statusCode="500" />
            <error statusCode="403" path="/Error/Unauthorized" responseMode="ExecuteURL" />
            <error statusCode="404" path="/Error/NotFound" responseMode="ExecuteURL" />
            <error statusCode="500" path="/Error/Error" responseMode="ExecuteURL" />
</httpErrors>