ホームページ > データベース > mysql チュートリアル > MySQL の各カテゴリからランダムなレコードを選択するにはどうすればよいですか?

MySQL の各カテゴリからランダムなレコードを選択するにはどうすればよいですか?

DDD
リリース: 2024-12-26 15:55:14
オリジナル
563 人が閲覧しました

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

MySQL の各カテゴリからランダム レコードを選択する

このデータベース クエリには、テーブル内の各カテゴリからランダム レコードを選択することが含まれます。提供されたテーブルには、「id」、「name」、および「category」の列を含む「Items」テーブルが含まれています。各アイテムは、「id」列と「category」列を持つ「カテゴリ」テーブルで表される 7 つのカテゴリの 1 つに属します。

このクエリに効果的にアプローチするには、結合と RAND() 関数の組み合わせを使用できます。 。このタスクを実行するクエリは次のとおりです。

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
ログイン後にコピー

このクエリは、まず "category" 列で "Categories" テーブルと "Items" テーブルを結合し、すべてのアイテムとそれに対応するカテゴリを取得します。 ORDER BY RAND() 句は、結果にランダムな順序を適用します。その後、クエリはサブクエリでラップされ、「cid」列によってグループ化されます。このグループ化により、各カテゴリが単一のランダム レコードに制限されるようになります。

大きなテーブルの場合、パフォーマンスの最適化が必要になる場合があることに注意してください。クエリの実行が遅い場合は、MySQL の TEMPORARY TABLES を使用するか、「category」列にインデックスを作成することを検討してください。

以上がMySQL の各カテゴリからランダムなレコードを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート