Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Baris Berwajaran daripada Pangkalan Data MySQL Menggunakan Pensampelan Takungan?

Bagaimana untuk Memilih Baris Berwajaran daripada Pangkalan Data MySQL Menggunakan Pensampelan Takungan?

Patricia Arquette
Lepaskan: 2024-12-31 11:05:18
asal
938 orang telah melayarinya

How to Select a Weighted Row from a MySQL Database Using Reservoir Sampling?

Memilih Baris Berwajaran daripada Pangkalan Data

Dalam pengurusan data, memilih baris secara rawak daripada jadual ialah tugas biasa. Walau bagaimanapun, terdapat senario di mana pemberat perlu digunakan pada proses pemilihan, memastikan baris tertentu mempunyai kebarangkalian yang lebih tinggi untuk dipilih.

Artikel ini meneroka penyelesaian kepada isu ini menggunakan kaedah pensampelan takungan berwajaran untuk MySQL pangkalan data. Pertimbangkan jadual dengan lajur: id, kandungan dan berat. Kami berhasrat untuk memilih baris secara rawak sambil mengambil kira berat.

Pertanyaan SQL di bawah memanfaatkan kaedah pensampelan takungan berwajaran untuk mencapai ini:

SELECT
  id,
  -LOG(RAND()) / weight AS priority
FROM
  your_table
ORDER BY priority
LIMIT 1;
Salin selepas log masuk

Pertanyaan ini mengira nilai keutamaan untuk setiap baris dengan membahagikan logaritma asli negatif bagi nombor rawak dengan beratnya. Baris tersebut kemudiannya diisih dalam urutan keutamaan menaik, dengan baris dengan keutamaan terendah (nilai keutamaan tertinggi) dipilih sebagai hasilnya.

Dengan menggunakan teknik pensampelan takungan berwajaran ini, kita boleh memilih baris secara rawak daripada jadual, di mana kebarangkalian pemilihan adalah berkadar dengan beratnya. Ini membolehkan kami memastikan baris dengan pemberat yang lebih tinggi mempunyai peluang yang lebih besar untuk dipilih.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris Berwajaran daripada Pangkalan Data MySQL Menggunakan Pensampelan Takungan?. 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