Obtenez plus d'infos à partir d'un MAX(ID), MIN(ID) de requête MYSQL?
Comment obtenir plus de colonnes de MAX(ID), MIN(ID)
requête MYSQL?
Actuellement je reçois seulement deux valeurs: MAX(ID) & MIN(ID)
à partir de cette requête:
SELECT MIN(ID), MAX(ID)
FROM mytable
WHERE mytable.series = 'white'
;
Devez obtenir quelque chose comme cela-pseudo-requête:
SELECT column1, column2
FROM mytable
WHERE series = 'white'
AND ID=Max(ID)
'AND GET ME ALSO'
WHERE series = 'white'
AND ID=Min(ID);`
Il doit retourner 2 lignes de la colonne "série" est égal à "blanc".
1er avec colonne1 et colonne2 pour ID=Min(ID).
2ème avec colonne1 et colonne2 pour ID=Max(ID).
Mais comment?
Vous devez vous connecter pour publier un commentaire.
Ici est une approche à l'aide
UNION
:Pour un bon rendement ajouter un index combiné sur
(series, id)
.Ou une autre variation qui peut avoir de meilleures performances:
Ce sera également en mesure d'utiliser l'indice combiné sur
(series, id)
.SHOW CREATE TABLE ...
et le résultat deEXPLAIN SELECT
?IN
expressions pourraient être lent dans les anciennes versions de MySQL, et lorsqu'un index n'était pas présent, mais: a) il est fixé dans la plus récente de MySQL et l'ajout d'un index (ce qui devrait ajouter de toute façon quel que soit le bug) permettra de résoudre le problème.(series, id)
. Vous devez ajouter à cette combinés de l'indice, même siseries
ouid
ou les deux, sont déjà indexés séparément. Un indice combiné n'est pas le même que l'indexation des colonnes séparément.Une solution plus simple:
C'est exactement comme tu dis:
Le sélectionner entre parenthèses est la sélection interne que vous pouvez utiliser comme une autre table.