Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Satu Rekod Rawak dari Setiap Kategori dalam MySQL?

Bagaimana untuk Memilih Satu Rekod Rawak dari Setiap Kategori dalam MySQL?

DDD
Lepaskan: 2024-12-20 10:52:09
asal
819 orang telah melayarinya

How to Select One Random Record from Each Category in MySQL?

Memilih Rekod Rawak Tunggal daripada Setiap Kategori dalam MySQL

Untuk mendapatkan semula item rawak daripada setiap kategori dalam pangkalan data yang ditentukan, dua- pendekatan peringkat adalah disyorkan. Mula-mula, gunakan pertanyaan untuk menggabungkan jadual item dan kategori dalam susunan rawak:

SELECT
c.id AS cid,
c.category,
i.id AS iid,
i.name
FROM categories c
INNER JOIN items i ON c.id = i.category
ORDER BY RAND();
Salin selepas log masuk

Pertanyaan ini akan memaparkan semua item yang digabungkan ke kategori masing-masing dalam urutan rawak. Untuk mengehadkan pemilihan kepada satu item bagi setiap kategori, sarangkan pertanyaan sebelumnya dalam pernyataan GROUP BY separa:

SELECT * FROM (
SELECT
c.id AS cid,
c.category,
i.id AS iid,
i.name
FROM categories c
INNER JOIN items i ON c.id = i.category
ORDER BY RAND()
) AS shuffled_items
GROUP BY cid;
Salin selepas log masuk

Separa GROUP BY ini memastikan setiap kategori hanya mengandungi satu item yang dipilih secara rawak. Adalah penting untuk ambil perhatian bahawa klausa ORDER BY mesti digunakan sebelum klausa GROUP BY agar pendekatan ini berfungsi dengan betul.

Walaupun kaedah ini mungkin bukan yang terpantas, kaedah ini menawarkan cara yang boleh dipercayai untuk memilih satu rekod rawak daripada setiap kategori dalam pangkalan data MySQL anda.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Satu Rekod Rawak dari Setiap Kategori dalam MySQL?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan