Die folgende Tutorial-Kolumne von Laravel zeigt Ihnen, wie Laravel zufällig n Daten aus der MySQL-Datenbank extrahiert. Ich hoffe, dass es für Freunde hilfreich sein wird brauchen!
Wie erhält Laravel zufällig n Daten aus der MySQL-Datenbank mit hoher Leistung? Manchmal müssen wir häufig Daten zufällig aus der Datenbank abrufen, zum Beispiel: 10 zufällig zuweisen Um einen Mitarbeiter zu bestellen, überprüfen wir 100 Benutzer nach dem Zufallsprinzip aus der Datenbank. Auf diese Weise müssen wir Daten nach dem Zufallsprinzip aus der Datenbank abrufen.
1. Verwenden Sie natives SQL, um 100 Daten aus der Datenbank abzurufen
Wie Sie auf der Mysql
offiziellen Website sehen können, können Sie ORDER BY RAND()
verwenden und LIMIT
zusammen können verwendet werden, um einen zufälligen Teil der Ergebnisse aus mehreren Zeilen auszuwählen.
SELECT * FROM table WHERE name="" ORDER BY RAND() LIMIT 100;
Dann ist die Verwendung von nativem SQL in Laravel auch sehr einfach, wie unten gezeigt:
$info = DB::select('SELECT * FROM table WHERE name="" ORDER BY RAND() LIMIT 100');
2. Verwenden Sie Rohausdrücke, um zufällig Daten aus den Daten zu erhalten
Wir alle kennen die primitiven Ausdrücke von Laravel. Wir können DB::raw('RAND()')
verwenden, um zufällige Daten aus der Datenbank abzurufen. Gleichzeitig können Sie auch orderByRaw('RAND()')
verwenden, um Daten zufällig aus der Datenbank abzurufen, was den gleichen Effekt hat wie DB::raw('RAND()')
$info=self::where('dealing','<>','') ->orderBy(DB::raw('RAND()')) ->take(5) ->get();
3. Verwenden Sie die inRandomOrder-Methode von Laravel, um Daten zufällig abzurufen
laravel Der Gesandte inRandomOrder
sortiert die Datenergebnisse zufällig, um den Effekt zu erzielen, dass wir Daten zufällig aus der Datenbank erhalten:
$info = DB::table('users') ->inRandomOrder() ->take(5) ->get();
Das obige ist der detaillierte Inhalt vonLaravel extrahiert zufällig n Daten aus der MySQL-Datenbank (hohe Leistung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!