我仍然是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。
任何见解都是非常感谢的!
发布于 2016-08-06 01:12:02
如果您只需要与那个(最大)日期对应的id和user_id,那么下面这样的代码就可以了
select expires, id, user_id
from foo
where expires in
(select max(expires)
from foo)发布于 2016-08-06 01:55:01
使用order by和limit
select f.*
from foo f
order by f.expires desc
limit 1;我认为这是最简单的方法。有了foo(expires)上的索引,它也应该有最好的性能。
https://stackoverflow.com/questions/38794452
复制相似问题