3 Stimmen

SQL-Datensätze auf der Grundlage übereinstimmender Bedingungen sortieren

Ich habe folgende Frage:

SELECT * FROM table WHERE key LIKE '1,2,3,%' OR key LIKE '1,2,%' OR key LIKE '1,%'

Ist es möglich, die von dieser Abfrage zurückgegebenen Datensätze danach zu sortieren, welche Bedingungen zuerst erfüllt wurden. Ich möchte alle Datensätze erhalten, die übereinstimmen key LIKE '1,2,3,%' zuerst, dann key LIKE '1,2,%' und die anderen danach.

Zum Beispiel, wenn ich diese Datensätze habe:

key: "1,2,3,4"
key: "1,2,5"
key: "1,4"
key: "1,2,5,6"
key: "1,3"
key: "1,2,3,4,7"
key: "1,2,4"

Ich möchte, dass sie wie folgt sortiert werden:

key: "1,2,3,4"
key: "1,2,3,4,7"
key: "1,2,4"
key: "1,2,5"
key: "1,2,5,6"
key: "1,3"
key: "1,4"

Ist es möglich, dies zu tun?

3voto

shamittomar Punkte 44872

Utilice MATCH ... AGAINST und nach Rang sortieren. Es macht genau das, was Sie wollen.

2voto

a1ex07 Punkte 36186

.... ORDER BY CASE WHEN key LIKE '1,2,3,%' THEN 1 WHEN key LIKE '1,2,%' THEN 2 ELSE 3 END

1voto

Pascal Bois Punkte 11

Könnte die Verwendung von "UNION" die Aufgabe erfüllen?

SELECT * FROM table WHERE Schlüssel LIKE '1,2,3,%' UNION SELECT * FROM tabelle WHERE schlüssel LIKE '1,2,%' UNION SELECT * FROM tabelle WHERE schlüssel LIKE schlüssel LIKE '1,%'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X