从mysql中获取第一个值

问题描述 投票:-1回答:2

我在mysql表中有列


uid ,  valueid , date 
11 ,    23,      "2019-01-01"
11 ,    24,      "2019-02-01"
11 ,    22,      "2019-05-01"


我想要这种格式的结果

id , valueid , date
11 , 23 , "2019-01-01"

始终获取第一个值id,即23

mysql sql view datatable multiple-columns
2个回答
1
投票

如果用第一个值表示具有最小日期的那个,则:

select t.*
from t
where t.date = (select min(t2.date) from t t2 where t2.uid = t.uid);

为了获得最佳性能,您需要在(uid, date)上建立索引。


0
投票

使用LIMIT,例如:

select * from t order by date limit 1

0
投票
with t as
(
   select *, row_number() over (partition by uid order by date) as rn
   from your_table   
)
select * from t
where rn = 1

0
投票

运行以下查询,其中table_name是表的名称

Select * from table_name where valueid=23;
© www.soinside.com 2019 - 2024. All rights reserved.