Pemilihan Entri Rawak Berwajaran dalam MySQL
Soalan ini berkenaan dengan pemilihan entri rawak daripada jadual MySQL, sambil mempertimbangkan pemberat yang dinyatakan dalam " lajur Pengganda". Setiap entri ditimbang berdasarkan nilai dalam lajur ini, dengan nilai 0 menunjukkan tiada pemberat, 1 menunjukkan pemberat berganda dan seterusnya.
Pengguna cuba mengubah suai kod yang disediakan menggunakan SELECT dan RAND() , tetapi menghadapi cabaran dalam melaksanakan pemberat.
Penyelesaian terletak pada penggunaan ORDER BY -LOG(1.0 - RAND()) / Pengganda, seperti yang dicadangkan dalam benang Limpahan Tindanan yang serupa. Formula ini secara berkesan menimbang entri berdasarkan nilai Penggandanya, menghasilkan keputusan yang tepat.
Walau bagaimanapun, pendekatan ini mempunyai had: menetapkan Pengganda kepada 0 akan menghasilkan pembahagian dengan ralat sifar. Untuk mengurangkan perkara ini, seseorang boleh menapis masukan dengan nilai Pengganda lebih besar daripada 0 menggunakan klausa WHERE.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih Entri Rawak Berwajaran daripada Jadual MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!