Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh melaksanakan pemilihan rawak berwajaran dalam MySQL dengan lajur 'Pendarab' dan mengelakkan pembahagian dengan ralat sifar?

Bagaimanakah saya boleh melaksanakan pemilihan rawak berwajaran dalam MySQL dengan lajur 'Pendarab' dan mengelakkan pembahagian dengan ralat sifar?

Barbara Streisand
Barbara Streisandasal
2024-11-28 00:22:10363semak imbas

How can I implement weighted random selection in MySQL with a

MySQL: Pemilihan Rawak Berwajaran dengan Pengganda

Seorang pengguna menghadapi senario di mana memilih masukan rawak daripada jadual MySQL perlu berdasarkan wajaran pada lajur "Pengganda". Walaupun pendekatan biasa melibatkan penggunaan SELECT dan RAND(), persoalan timbul tentang bagaimana untuk mencapai aspek pemberat.

Untuk mengatasinya, penyelesaian sebelumnya mencadangkan susunan mengikut nilai -LOG(1.0 - RAND() ) dibahagikan dengan Pengganda. Pendekatan ini berjaya menghasilkan pemberat yang tepat. Walau bagaimanapun, potensi kelemahan muncul: menetapkan Pengganda kepada 0 untuk melumpuhkan pilihan akan mengakibatkan pembahagian dengan sifar.

Sebagai alternatif, menapis masukan dengan Pengganda 0 dengan menggunakan Pengganda WHERE > 0 syarat boleh dipertimbangkan. Ini memastikan bahawa entri yang dilumpuhkan tidak termasuk dalam proses pemilihan rawak.

Atas ialah kandungan terperinci Bagaimanakah saya boleh melaksanakan pemilihan rawak berwajaran dalam MySQL dengan lajur 'Pendarab' dan mengelakkan pembahagian dengan ralat sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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