如何从MAX(ID), MIN(ID)MYSQL查询中获取更多列?
目前我只获得两个值:MAX(ID) & MIN(ID)来自此查询:
SELECT MIN(ID), MAX(ID)
FROM mytable
WHERE mytable.series = 'white'
;
需要得到像这样的伪查询:
SELECT column1, column2
FROM mytable
WHERE series = 'white'
AND ID=Max(ID)
'AND GET ME ALSO'
WHERE series = 'white'
AND ID=Min(ID);`
Run Code Online (Sandbox Code Playgroud)
对于"系列"列,它应返回2行,等于"白色".
第1列为column1,第2列为ID = Min(ID).第2列为column1,第2列为ID = Max(ID).
但是怎么样?
这是一种使用方法UNION:
SELECT column1, column2
FROM mytable
WHERE series = 'white' AND ID IN
(
SELECT MIN(ID) FROM mytable WHERE series = 'white'
UNION
SELECT MAX(ID) FROM mytable WHERE series = 'white'
)
Run Code Online (Sandbox Code Playgroud)
为了获得良好的性能,请添加组合索引(series, id).
或者可能具有更好性能的另一种变体:
(
SELECT column1, column2
FROM mytable
WHERE series = 'white'
ORDER BY ID
LIMIT 1
)
UNION
(
SELECT column1, column2
FROM mytable
WHERE series = 'white'
ORDER BY ID DESC
LIMIT 1
)
Run Code Online (Sandbox Code Playgroud)
这也可以使用组合索引(series, id).
| 归档时间: |
|
| 查看次数: |
11094 次 |
| 最近记录: |