Zum Beispiel: wähle * aus T wo T.id IN (4,78,12,45)
Ich möchte, dass der zurückgegebene Datensatz nach der Position in der IN-Klausel sortiert wird. Wie kann ich das tun?
Sie können es mit FIND_IN_SET machen, zB
%Vor%Während Sie die Liste duplizieren müssen, ist das kein großes Problem, wenn Sie die Abfrage im Code generieren.
Im allgemeinen Fall können Sie nicht. SQL garantiert keine Reihenfolge, es sei denn, Sie verwenden die ORDER BY
-Klausel, und sie kann nicht in den Inhalt einer IN
-Anweisung eingebunden werden.
Wenn Sie jedoch eine temporäre Tabelle erstellen können, die die von Ihnen ausgewählten Werte anordnet, können Sie sich dieser Tabelle anschließen und danach sortieren.
Sie haben beispielsweise eine temporäre Tabelle, die etwa Folgendes enthält:
%Vor%Dann kannst du es so bestellen:
%Vor%