Ich habe heute ziemlich viel Zeit damit verbracht, verschiedene Dinge auszuprobieren, aber keiner von ihnen scheint zu funktionieren. Hier ist meine Situation ist, würde ich in der Lage sein mag den Rang einer Zeile wählen basierend auf seine ID aus einer speziell sortierten ReiheMit MySQL, wie wähle ich Abfrage Ergebnis Rang einer bestimmten Zeile?
Zum Beispiel, wenn meine Frage ist so etwas wie:
SELECT id, name FROM people ORDER BY name ASC
mit Ergebnissen wie:
id name 3 Andrew 1 Bob 5 Joe 4 John 2 Steve
ich möchte den Rang bekommen (was Zeile es in den Ergebnissen endet) ohne alle Zeilen zurückkehrt und sie Looping werfen, bis ich zu dem einen bekomme ich (in PHP) wollen.
Zum Beispiel möchte ich den 'Rang' von 'Steve' auswählen, so dass es zurückkommt - in diesem Fall - 5 (nicht seine ID, sondern der 'Rang' seines Namens in der obigen Abfrage).
In ähnlicher Weise möchte ich in der Lage sein, den Rang einer beliebigen Zeile mit der ID 1 auszuwählen. In diesem Beispiel möchte ich einen 'Rang' von 2 zurückgeben (weil das in der Ergebniszeile steht) ist eine ID von 1) und sonst nichts.
Ich habe google'd so viel wie ich konnte mit unterschiedlichen Ergebnissen ... Entweder mit wirklich langsamen Abfragen für größere Tabellen oder müssen alle Arten von temporären Tabellen und Benutzervariablen erstellen (die ehemalige würde ich wirklich gerne vermeide das letztere, mit dem ich leben kann).
Jede Hilfe oder Einsicht würde sehr geschätzt werden.
bekommen Nach ein paar kleinen Änderungen scheint dies zu funktionieren, ziemlich gut für das, was ich brauche.Aber eine zusätzliche Komplikation: wäre es möglich, eine Reihe von Zeilen mit einer Reihe von Bedingungen zu wählen (zB nur Leute, die ein 'J' im Namen haben - WHERE Name LIKE '% j%'. Ich habe es versucht , und während das Ergebnisfeld 'Rang' immer noch relevant ist, überspringt es Zahlen für diejenigen, die kein J im Namen haben. – theotherlight