Ich habe mehrere Tabellen, die zusammen bekommen geJOINte mit SäulenGibt es eine SQL-Technik für die Bestellung, indem mehrere Kriterien abgeglichen werden?
designID
garmentID
colorID
sizeID
imageID
ich eine Tabelle zu bilden, haben eine Funktion, die wie folgt aussieht [Variablen in eckigen Klammern sind optional]:
getProductImages($designID, [$garmentID], [$colorID], [$sizeID]);
ich es will um alle imageIDs zurück, die in der folgenden Reihenfolge $ designID entspricht:
- Zeilen, den $ garmentID, $ ColorID entspricht, und erste sizeID $
- Zeilen, die Zeilen $ garmentID und $ ColorID nächste
- , die passen nur $ garmentID nächste
- Zeilen, die keine passen (nur $ designID) letzte
ich tun konnte, das ist ziemlich einfach nur um das Laden alle passen die Zeilen, die mit $ designID übereinstimmen und sie dann in PHP sortieren, aber ich verstehe, dass es in der Regel schneller ist, wenn möglich in MySQL zu sortieren. Es wird ungefähr 20 Zeilen geben, die mit einer bestimmten $ designID übereinstimmen.
Also meine Frage ist zweifach: Lohnt es sich, die Sortierung in einer SQL-Anweisung zu tun? Wenn ich das tue, was ist der beste Ansatz?
Ich wäre auch sehr interessiert zu wissen, ob es einen Namen für diese Art der Sortierung gibt.
Ein wichtiger Verzicht auf diese Technik ist, dass die nicht übereinstimmenden Spalten nicht sortiert werden; Dies kann für diesen Anwendungsfall ein Problem sein oder auch nicht. – Stobor
@Stobor: Ich glaube nicht, dass ich das verstehe. Können Sie ein Beispiel geben? ... Beachten Sie auch, dass das OP nur eine Spalte in der Ergebnismenge (eine 'imageId'-Spalte) will. –
Genau das habe ich gesucht und wesentlich eleganter, als ich es mir vorgestellt habe. – Robert