1
saulshao 2020 年 8 月 27 日
照下面这样写就行了,直接出结果。
··· SELECT 生成时间 FROM result WHERE `型号`in (1,2,3) ORDER BY 生成时间 DESC LIMIT 1; ··· |
2
jay0726 2020 年 8 月 27 日
刚想回复,楼上抢先一步啊
|
3
saulshao 2020 年 8 月 27 日
为啥这个 md 语法不起作用?
|
4
wangyanrui 2020 年 8 月 27 日 via Android
union 成临时表,然后排序加 limit 1
但是这玩意如果性能压力不是特别大,还是代码处理吧,可读性太差了 |
5
saulshao 2020 年 8 月 27 日
写错,markdown
|
6
wangyanrui 2020 年 8 月 27 日 via Android
瞎了,一楼正解。以为不是同一个表😂😂
|
7
saulshao 2020 年 8 月 27 日
这玩意如果不是性能压力特别大,反而不建议代码处理,因为这东西外面套个函数,就相当于可读性了。
|
8
MeowOvO 2020 年 8 月 27 日
|
10
aborigine 2020 年 8 月 27 日
select min(生成时间) from result where 型号=1 or 型号=2 or 型号=3
|
11
aborigine 2020 年 8 月 27 日
如果生成时间没有索引 那用 min 效率更高
|
13
mcdunc 2020 年 8 月 27 日 via Android
lz 是想分别把型号为 1,2,3 的最早生成时间给抽出来吗还是查总体的最早生成时间?如果按 1 楼的那种查出来的不应该是总体的最早吗?
|
14
a719114136 2020 年 8 月 27 日 via Android
select 型号,min(时间) from xx where 型号 in(1,2,3) group by 型号
|
15
someonedeng 2020 年 8 月 28 日
SELECT * from (SELECT 生成时间,1 as 型号 FROM result WHERE `型号`='1' ORDER BY 生成时间 DESC LIMIT 1 ) t1 union all
SELECT * from (SELECT 生成时间,2 as 型号 FROM result WHERE `型号`='2' ORDER BY 生成时间 DESC LIMIT 1 ) t2 union all SELECT * from (SELECT 生成时间,3 as 型号 FROM result WHERE `型号`='3' ORDER BY 生成时间 DESC LIMIT 1) t3;   |
16
lyusantu 2020 年 8 月 28 日
不考虑性能情况下,内层 union,外层再 select * limit 一次即可
|
17
xuanbg 2020 年 8 月 28 日
@saulshao 你这个不等价啊,人家是每个型号 1 条,你的可能 3 条都是 1 个型号。
正确答案是使用 union all 关键词。 SELECT 生成时间 FROM result WHERE `型号`='1' ORDER BY 生成时间 DESC LIMIT 1 union all SELECT 生成时间 FROM result WHERE `型号`='2' ORDER BY 生成时间 DESC LIMIT 1 union all SELECT 生成时间 FROM result WHERE `型号`='3' ORDER BY 生成时间 DESC LIMIT 1; |
19
guanhui07 2020 年 8 月 28 日
```
unionall ``` |
20
coderfox 2020 年 8 月 28 日
SELECT 型号, MAX(生成时间) FROM result WHERE 型号 IN ('1', '2', '3') GROUP BY 型号 ORDER BY 型号, 生成时间 DESC;
|
21
coderfox 2020 年 8 月 28 日
@coderfox #20 更正一下,只需要 SELECT 型号, MAX(生成时间) FROM test WHERE 型号 IN ('1', '2', '3') GROUP BY 型号;
|
22
jzmws 2020 年 8 月 28 日
考虑用 case ?
|
23
bigpower777 2020 年 8 月 28 日
SELECT
s1.d1, s2.d2, s3.d3 FROM (select CREATE_DATE as d1 from account_system where MZ='01' ORDER BY CREATE_DATE desc limit 1) s1, (select CREATE_DATE as d2 from account_system where MZ='02' ORDER BY CREATE_DATE desc limit 1) s2, (select CREATE_DATE as d3from account_system where MZ='03' ORDER BY CREATE_DATE desc limit 1) s3 |
24
gaius 2020 年 8 月 28 日 via Android
pg 或者 mysql8 用窗口函数
|