首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中获取max字段对应的id

问如何在mysql中获取max字段对应的id
EN

Stack Overflow用户
提问于 2016-08-06 01:03:52
回答 2查看 1.5K关注 0票数 2

我仍然是mysql命令的新手,我学会了如何获取列的最大值和列的计数。我的数据库名为db,我的表(名为"foo")如下所示:

代码语言:javascript
复制
+----------+-------------+------+-----+---------+-------+
| 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获取最大日期的命令

代码语言:javascript
复制
mysql -u root db -e "select max(id) from foo;"

仅此一项就会给我带来:

代码语言:javascript
复制
+---------------------+
| max(expires)        |
+---------------------+
| 2016-08-05 17:54:44 |
+---------------------+

我想做的是找回这个:

代码语言:javascript
复制
+---------------------+--------+--------+
| max(expires)        | id     | user_id|
+---------------------+--------+--------+
| 2016-08-05 17:54:44 |cd97eb4 | 2bf2cec|
+---------------------+--------+--------+ 

因此,我将获得最大到期日期以及该到期日期的id和用户id。

任何见解都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-06 01:12:02

如果您只需要与那个(最大)日期对应的id和user_id,那么下面这样的代码就可以了

代码语言:javascript
复制
select expires, id, user_id
from foo
where expires in
    (select max(expires) 
     from foo)
票数 1
EN

Stack Overflow用户

发布于 2016-08-06 01:55:01

使用order by和limit

代码语言:javascript
复制
select f.*
from foo f
order by f.expires desc
limit 1;

我认为这是最简单的方法。有了foo(expires)上的索引,它也应该有最好的性能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38794452

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档