複数のカテゴリにわたるデータベース選択のランダム化
ここで提示される課題は、データベース内の各カテゴリから 1 つのランダムなレコードを取得することです。 Items テーブルにはこれらのレコードが格納され、それぞれが対応する Categories テーブルで指定されたカテゴリに割り当てられます。
このタスクに取り組むには、RAND() 関数と LIMIT 1 句を使用して MySQL 固有のランダム性を利用できます。ただし、ここでのユニークな点は、個別のカテゴリごとにランダムなレコードを選択する必要があることです。
次のクエリは、この課題にエレガントに取り組んでいます。
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
このクエリの構造により、1 つのレコードを取得できます。各カテゴリからのランダム レコード:
このアプローチは、並外れた速度を誇るわけではありませんが、複数のレコードにわたるランダムなレコード選択の課題に効果的に対処します。カテゴリー。このクエリの有用性をさらに高めるため、最適化のための代替案を歓迎します。
以上がMySQL データベースの各カテゴリからランダムなレコードを 1 つ選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。