【发布时间】:2017-08-10 15:44:50
【问题描述】:
我有一个表名 devices。
+---------+---------------+---------------------+
| user_id | device_status | created_at |
+---------+---------------+---------------------+
| 1 | 0 | 2017-03-10 10:39:41 |
| 1 | 0 | 2017-03-14 10:19:33 |
| 2 | 0 | 2017-03-14 10:57:59 |
| 1 | 0 | 2017-03-15 05:58:51 |
| 3 | 0 | 2017-03-15 06:01:32 |
| 3 | 0 | 2017-03-15 12:10:13 |
+---------+---------------+---------------------+
我想要做的是更新已首先存储在 mysql 表中的 user_id 的 device_status。
例如,我们有 3 行 user_id 1. 和 created_at 日期。我想更新 user_id 1 created_at 日期 2017-03-10 10:39:41 的 device_status。
编辑1:我使用的查询
UPDATE devices
SET device_status = 1
WHERE created_at = (SELECT created_at
FROM (SELECT MIN(created_at) AS created_at
FROM devices) AS t);
但是这个查询只更新了一条记录(2017-03-10 10:39:41)。 我要更新
| 2 | 0 | 2017-03-14 10:57:59 |
和
| 3 | 0 | 2017-03-15 06:01:32 |
也有记录。
【问题讨论】:
-
你试过使用 min(created_at) 吗?您面临什么问题?
-
问题是如何查看user_id?
-
你想每次都做批量更新还是单行更新?
-
发布你试过的
SQL -
@RealCheeseLord 等我编辑帖子。
标签: mysql sql-update