簡體   English   中英

如何在mysql中獲取最大字段的對應ID

[英]How to get the corresponding id of a max field in mysql

我還是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    |       |
+----------+-------------+------+-----+---------+-------+

基本上,我想知道是否有一種方法可以獲取到期字段的最大日期,然后打印出相應的字段,例如user_id和id。 到目前為止,這是我目前用於從命令行獲取最大日期的命令

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。

非常感謝任何見識!

如果您只想要與該(最大)日期相對應的iduser_id ,則應執行以下操作

select expires, id, user_id
from foo
where expires in
    (select max(expires) 
     from foo)

使用order by limit

select f.*
from foo f
order by f.expires desc
limit 1;

我認為這是最簡單的方法。 並且使用foo(expires)的索引,它也應該具有最佳性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM