「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > MySQL のページネーションで重複や最初のページの結果が固定されずにランダムな順序を維持するにはどうすればよいですか?

MySQL のページネーションで重複や最初のページの結果が固定されずにランダムな順序を維持するにはどうすればよいですか?

2024 年 11 月 7 日に公開
ブラウズ:869

How to Maintain Random Ordering in MySQL Pagination without Duplicates or Fixed First Page Results?

ランダムな順序による PHP MySQL ページネーション

MySQL ページネーションでランダムな順序を維持すると、結果の重複を防ぎ、さまざまなセットを保証しようとするときに課題が生じる可能性があります。最初のページ。これらの問題に対する解決策は次のとおりです:

1.結果の重複の防止

後続のページで以前に表示された結果を除外するには、以前に取得した行に基づく除外基準を使用して SQL クエリを拡張します。 PHP 配列を利用して取得したコンテンツを保存し、クエリに除外条件を組み込みます。

$excludeIDs = []; // Array to store excluded IDs

$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
    $query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";

2.最初のページの結果の変化

はい、RAND() 関数にシード値を導入することで、ランダムな順序でページネーションを使用できます。シードを変更することにより (時間やユーザーの IP アドレスなどに基づいて)、毎回異なる結果セットを取得できます。

3. RAND(SEED)

の使用 RAND(SEED) を使用してシード値を指定し、ランダムな順序付けに影響を与えます。定数の整数をシードとして設定することで、結果のシーケンスを制御できます。

$seed = 521; // Example seed value

$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
リリースステートメント この記事は次の場所に転載されています: 1729727088 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3