以前は、このような使用シナリオを処理するために 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をインストールする方法
負荷分散とは何ですか?ドメイン名が複数の Web サーバーを指している場合は、nginx ロード バ...
目次1. インデックスの基礎知識1.1 インデックスの利点1.2 インデックスの有用性1.3 インデ...
まとめHTML: 要素と v-cloak CSS: [v-cloak]{表示: なし}プロセスページ...
目次1. 主な機能2. 実装のアイデア3. コードの実装4. エフェクト表示V. 結論1. 主な機能...
目次vimプラグインマネージャーをインストールするプラグインデモを追加プラグインを削除するには: v...
この記事では、例を使用して MySQL トリガーの作成と使用について説明します。ご参考までに、詳細は...
HTML タグには、ページのタイトルを処理するための特別なタグがあります。これらは h1、h2、h3...
デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...
効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...
この記事では、Frameset が作成した、できるだけシンプルなフレームワークを紹介します。さて、ま...
必要なコメントを追加することは、責任感と道徳心のあるフロントエンド開発者が持つべき良い習慣であり、コ...
1. ノーフープハングアップ信号を無視してプログラムを実行する追加メモnohup コマンドは、ハン...
この記事では、例を使用して MySQL コマンドライン スクリプトの実行について説明します。ご参考ま...
目次これ方法オブジェクト内これを隠した厳密モードこれを変更してこれいつものように、まずはコードを見て...
目次vueルーター1. ルーティングの概念を理解する1.1 ルーティングとは何ですか? 1.2. バ...