从MAX(ID),MIN(ID)MYSQL查询获取更多信息?

Ash*_*501 7 mysql max min

如何从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).

但是怎么样?

Mar*_*ers 6

这是一种使用方法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).