Code: Select all
+------------+--------------+
| Field | Type |
+------------+--------------+
| id | varchar(20) |
| make | varchar(255) |
| color | varchar(20) |
+------------+--------------+
Code: Select all
+---------+-------------------+
| ID | Make | Color |
+---------+---------+---------+
| 0 | Toyota | Red |
+---------+---------+---------+
| 1 | Toyota | Red |
+---------+---------+---------+
| 2 | Toyota | Blue |
+---------+---------+---------+
| 3 | Honda | Red |
+---------+---------+---------+
| 4 | Mazda | Blue |
+---------+---------+---------+
| 5 | Mazda | Red |
+---------+---------+---------+
| 6 | Toyota | Red |
+---------+---------+---------+
| 7 | Honda | Blue |
+---------+---------+---------+
| 8 | Nissan | Blue |
+---------+---------+---------+
| 9 | Nissan | Blue |
+---------+---------+---------+
| 10 | Nissan | Red |
+---------+---------+---------+
| 11 | Nissan | Red |
+---------+---------+---------+
| 12 | Nissan | Blue |
+---------+---------+---------+
| 13 | Nissan | Blue |
+---------+---------+---------+
| 14 | Nissan | Blue |
+---------+---------+---------+
| 15 | Nissan | Red |
+---------+---------+---------+
| 16 | Nissan | Blue |
+---------+---------+---------+
Code: Select all
+---------+---------+---------+
| ID | Make | Color |
+---------+---------+---------+
| 1 | Toyota | Red |
+---------+---------+---------+
| 6 | Toyota | Red |
+---------+---------+---------+
| 2 | Toyota | Blue |
+---------+---------+---------+
| 3 | Honda | Red |
+---------+---------+---------+
| 4 | Mazda | Blue |
+---------+---------+---------+
| 5 | Mazda | Red |
+---------+---------+---------+
| 7 | Honda | Blue |
+---------+---------+---------+
Wir sehen auch 2 Hondas, da in der Datenbank nur 2 vorhanden sind , und beide erfüllen die Kriterien. Das Gleiche gilt für die Mazdas.
Mir ist die Reihenfolge der Ergebnisse nicht unbedingt wichtig, aber ich möchte die Permutationen zufällig abrufen können, mit einem Limit von Wie viele von jeder Permutation bekomme ich zurück?
Gibt es eine [einfache] Möglichkeit, dies über eine Abfrage zu tun, die im laufenden Betrieb generiert werden kann? Alternativ bin ich offen für die Idee, mehrere Abfragen durchzuführen und sie dann selbst im Code zusammenzufügen, aber soweit ich weiß, sind mehrere Abfragen nicht sehr leistungsfähig? Auch wenn die Leistung definitiv ein Problem darstellt, würde ich mir, wenn möglich, ein Gleichgewicht zwischen der Lesbarkeit des Codes und der Komplexität der Abfrage wünschen.