【发布时间】:2016-08-05 17:03:52
【问题描述】:
我还是 mysql 命令的新手,我学会了如何获取列的最大值和列的计数。我的数据库名为 db,我的表(名为“foo”)如下所示:
+----------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| id | varchar(64) | NO | PRI | NULL | |
| expires | datetime | YES | MUL | NULL | |
| extra | text | YES | | NULL | |
| valid | tinyint(1) | NO | | NULL | |
| trust_id | varchar(64) | YES | MUL | NULL | |
| user_id | varchar(64) | YES | MUL | NULL | |
+----------+-------------+------+-----+---------+-------+
基本上,我想知道是否有办法获取 expires 字段的最大日期,然后打印出相应的字段,如 user_id 和 id。到目前为止,这是我目前用来在命令行中从 expires 获取最大日期的命令
mysql -u root db -e "select max(id) from foo;"
仅此一项就能给我:
+---------------------+
| max(expires) |
+---------------------+
| 2016-08-05 17:54:44 |
+---------------------+
我想做的就是把它拿回来:
+---------------------+--------+--------+
| max(expires) | id | user_id|
+---------------------+--------+--------+
| 2016-08-05 17:54:44 |cd97eb4 | 2bf2cec|
+---------------------+--------+--------+
那么我将拥有最长过期日期以及该过期日期的 ID 和用户 ID。
非常感谢任何见解!
【问题讨论】:
-
你是说你希望最大值按 id 过期吗?
-
您需要将最大查询设为子查询,并将其与计算字段的最大值连接回原始表;请记住,如果超过一行的最大值,您可能会在结果中获得多行。
-
@MattCremeens 更新了帖子。我希望问题更清楚:)
-
@zet 针对您的编辑,我已对我的答案进行了补充,这确实有助于澄清问题。谢谢。