以前は、このような使用シナリオを処理するために rand() で直接 order していましたが、効率があまり良くありませんでした。そこで最近、このシナリオに再び遭遇し、オンラインでより良い解決策を探しました。 1.rand() による順序付け 書き方: 選択 id から `テーブル` 注文する ランド() この書き方の場合の欠点は、rand 関数が order by で複数回実行されるため、効率に影響が出ることです。 2. max(id) * rand() をjoinを使って実行する 書き方: 選択 * から `テーブル` AS t1 参加する ( 選択 ラウンド( ランダム()*( (SELECT MAX(id) FROM `table`) - (SELECT MIN(id) FROM `table`) ) + (`table` から MIN(id) を選択) ) AS ID ) t2 どこ t1.id >= t2.id 注文する t1.id 制限 1; ネット上の大物たちはみんな2番目の書き方を推奨しているので、記録しておこうと思います。最大IDと最小IDはプログラム内で計算できる気がします。 ここで問題となるのは、複数のレコードを取得する場合、それらは連続している必要があるため、連続したデータを取得したくない場合はループする必要があることです。ただし、このステートメントは非常に効率的なので、ループクエリを実行できます。 上記は関連する知識ポイントです。困っている友人はそこから学ぶことができます。123WORDPRESS.COM を応援していただきありがとうございます。 |
>>: vscodeでnpmを使用してbabelをインストールする方法
1. それは何ですか? MySQL は最も人気のあるリレーショナル データベース管理システムです。W...
導入: AD は Active Directory の略称で、中国語では Active Direct...
DOM の概念DOM: ドキュメント オブジェクト モデル: ドキュメント オブジェクト モデルは、...
MongoDB を起動すると、プロンプトは次のようになります。共有ライブラリのロード中にエラーが発...
私は2年間運用保守に携わり、多くのコマンドを使用しました。特定のLinuxコマンドを習得すると、どれ...
目次データ列を分離するプレフィックスインデックスとインデックスの選択性データ列を分離するMySQL ...
この記事では、reduce()、filter()、map()、every()、some()、spre...
この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...
達成される効果は次のとおりです。 マウスがボタン内に移動すると、ネオンライトのような効果が生成され、...
エラーメッセージ:ユーザー: 'root' ホスト: `localhost'...
目次js 呼び出しメソッドアンドロイド1.jsはネイティブを呼び出す2. ネイティブコールjs iO...
Docker バージョン 1.13.1問題プロセス特定の環境のMySQLコンテナを停止、強制終了、ま...
1. テーブル構造テーブル人id名前1あなた2あなた(スペース) 3あなた(スペース2つ) 2. ク...
1. はじめに数日前、プロジェクトでトラバーサルに使用したときに落とし穴に遭遇し、解決するのに 1 ...
ほとんどのナビゲーション バーは、下の図に示すように水平に配置されていますが、これはどのように実現さ...