2017-03-28 3 views
1

Mit der folgenden TabelleMySQL: Wählen Sie nicht mehr als X Zeilen eines Typs

some_table 
+----+-------------+------+ 
| id | some_column | type | 
+----+-------------+------+ 
| 1 |  value | 1 | 
| 2 |  value | 2 | 
| 3 |  value | 1 | 
| .. |   ... | ... | 
| .. |   ... | ... | 
+----+-------------+------+ 

ich wählen machen müssen, die alle Zeilen mit Typ 1, aber die maximal 2 vom Typ es 2. Ist liefern würde möglich mit einer Aussage?

+1

Sie können 'UNION' zwei Anfragen erhalten zusammen. –

+0

@MattClark - war dieser Kommentar für eine andere Frage gedacht? –

+0

Ich habe die Frage falsch gelesen, obwohl OP nur für einen jeden _type_ gesucht hat. –

Antwort

1

Verwenden Sie einfach einen UNION

select id, some_column, type from some_table where type = 1 
UNION 
(select id, some_column, type from some_table where type = 2 limit 2) 

Sie könnten einige ORDER BY Klausel in der zweiten Abfrage angeben wollen, sonst ist es nicht garantiert, die zwei Reihen von type = 2 werden Sie

Verwandte Themen