Lassen Sie sagen, dass ich mit Hunderten von Spielzeug von verschiedenen Farben in der folgenden Tabelle haben ...MySQL Query mit der mehrere GRENZEN
---------------------------
ITEM | COST | COLOR
---------------------------
1 | 12.00 | BLUE
2 | 10.98 | RED
3 | 9.34 | BLUE
4 | 11.33 | WHITE
5 | 8.00 | YELLOW
. | . | .
. | . | .
. | . | .
Wenn ich die drei niedrigsten Preis blau Spielzeug wählen wollte, könnte ich natürlich schreiben. ..
SELECT * FROM TOYS WHERE Color = 'BLUE' ORDER BY COST LIMIT 3;
Aber ist es eine Möglichkeit, dass ich die eine eindeutig festgelegte Anzahl von preisgünstigste gelb, weiß und blau Spielzeug wählen kann, als ob ich sagte ...
SELECT * FROM TOYS WHERE COLOR = 'YELLOW' (LIMIT 1) AND COLOR = 'WHITE' (LIMIT 3) AND COLOR = 'BLUE' (LIMIT 2) ORDER BY COST
Ist es möglich, dies vollständig in MySQL zu tun, ohne das Array in PHP zu durchlaufen?
Ich nehme an, das folgende würde * nicht * funktionieren, weil es Ressourcen zerstückeln würde: Führen Sie die komplexe Abfrage ohne die letzte WHERE-Klausel (zB " FARBE "oben); Speichern Sie die Ergebnisse in einer temporären Tabelle. und dann eine viel einfachere Abfrage für die temporäre Tabelle ausführen? Da die Website möglicherweise Hunderte, sogar Tausende von gleichzeitigen Benutzern haben könnte, besteht die Möglichkeit, dass diese Abfrage hunderte Male pro Sekunde ausgeführt wird. Habe ich recht, wenn ich davon ausgehe, dass beim Erstellen und Löschen von temporären Tabellen viel mehr Aufwand entsteht als bei mehreren komplexen Abfragen? –