Wählt MySQL "SELECT LIMIT 1" mit mehreren Datensätzen den ersten Datensatz von oben aus?

8

Ich habe gesucht und gesucht und kann keine Antwort auf diese Frage finden, ich frage es wahrscheinlich auf die falsche Art.

Ich frage eine Mitarbeiterdatenbank ab.

Ich brauche Details basierend auf einer Positions-ID, es könnte jedoch mehrere Datensätze für diese Positions-ID geben, da diese Organisation feste Mitarbeiter und temporäre Mitarbeiter hat, die gegen die gleiche Position agieren.

Um also den AKTUELLEN Bewohner der Positions-ID zu erhalten, brauche ich meine Abfrage, um den ERSTEN Datensatz, der der Positionszeichenkette entspricht, aus dem TOP DOWN auszuwählen.

wird dies den ersten übereinstimmenden Datensatz von oben auswählen?

%Vor%

Vielen Dank im Voraus.

    
hammus 07.07.2013, 22:59
quelle

3 Antworten

8

Sie benötigen eine ORDER BY -Klausel, um die Reihenfolge zwischen den einzelnen Datensätzen Ihrer Tabelle zu definieren. Wenn Sie ORDER BY nicht verwenden, können Sie keine feste Reihenfolge zwischen den Datensätzen annehmen, und Sie könnten bei jeder Ausführung der Abfrage eine neue Reihenfolge erhalten.

    
apartridge 07.07.2013, 23:04
quelle
3

Aus dem Handbuch:

  

Mit einem Argument gibt der Wert die Anzahl der Zeilen an, die vom Anfang der Ergebnismenge zurückgegeben werden sollen

So erhalten Sie mit LIMIT 1 die erste Zeile aus der Ergebnismenge. Wie das Ergebnis eingestellt wird, hängt davon ab, welche Engine verwendet wird und welche Indizes Sie haben. Wenn Sie die erste Zeile hinzufügen möchten, müssen Sie eine andere Spalte erstellen, um diese zu definieren.

    
flogvit 07.07.2013 23:04
quelle
2

Es wird nur zufällig ausgewählt * . Es gibt keine Möglichkeit zu sagen, welcher es sein wird, es sei denn, Sie fügen eine ORDER BY -Klausel hinzu.

* Nicht wirklich zufällig, natürlich. Dies hängt davon ab, wie die Datensätze gespeichert werden, und wiederholte Abfragen geben wahrscheinlich jedes Mal das gleiche Ergebnis zurück, zumindest solange Sie die Tabelle oder deren Inhalt nicht ändern. Ich meine, du kannst dir nicht sicher sein.

    
GolezTrol 07.07.2013 23:03
quelle

Tags und Links