Bagaimanakah saya boleh mendapatkan baris rawak daripada jadual pangkalan data dalam Laravel?

Barbara Streisand
Lepaskan: 2024-11-21 16:14:10
asal
382 orang telah melayarinya

How do I get random rows from a database table in Laravel?

Mendapatkan Baris Rawak dalam Laravel

Untuk mendapatkan semula baris rawak daripada jadual pangkalan data menggunakan Laravel's Eloquent ORM atau Fluent query builder, terdapat beberapa pendekatan tersedia, bergantung pada versi Laravel anda menggunakan.

Laravel 5.2 dan Kemudian

Dalam Laravel 5.2 dan versi yang lebih baru, anda boleh menggunakan kaedah inRandomOrder():

$randomUser = User::inRandomOrder()->first();
$randomUsers = User::inRandomOrder()->take(5)->get();
Salin selepas log masuk

Laravel 5.1 dan Sebelum

Sebelum Laravel 5.2, anda akan menggunakan sintaks SQL mentah untuk mencapai rawak:

$randomUser = User::orderByRaw("RAND()")->first();
$randomUsers = User::orderByRaw("RAND()")->take(5)->get();
Salin selepas log masuk

Laravel 3

Dalam Laravel 3, gunakan kaedah order_by() dengan DB::raw() fungsi:

$randomUser = User::order_by(DB::raw("RAND()"))->first();
$randomUsers = User::order_by(DB::raw("RAND()"))->take(5)->get();
Salin selepas log masuk

Menggunakan Koleksi

Sebagai alternatif, anda boleh menggunakan kaedah rawak() atau rawak($count) Koleksi untuk mendapatkan elemen atau tatasusunan rawak unsur rawak:

$randomUser = User::all()->random();
$randomUsers = User::all()->random(10);
Salin selepas log masuk

Pertimbangan

Dalam SQL, ORDER BY RAND() boleh menjadi tidak cekap untuk jadual besar, kerana ia memerlukan enjin pangkalan data untuk mengisih semua rekod. Untuk prestasi yang lebih baik, pertimbangkan untuk menggunakan pendekatan alternatif seperti pensampelan atau pengindeksan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mendapatkan baris rawak daripada jadual pangkalan data dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan