以前は、このような使用シナリオを処理するために 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をインストールする方法
許可が拒否されました:その理由は、ファイルの読み取り、書き込み、作成、削除などの権限がないためです。...
ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...
オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...
ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...
1|0MySQL(MariaDB) 1|11. 説明MariaDB データベース管理システムは My...
ktl ツールを使用して、mysql から mysql にデータを同期します。 1. 新しいジョブス...
はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...
目次序文クイックレビュー: JavaScript 関数関数とは何ですか?関数を宣言する関数の呼び出し...
CentOS6.9はMysql5.7をインストールします。参考までに、詳細は次のとおりです。 1. ...
JavaScript を使用して Web ページ クロックを実装します。効果は次の図に示されています...
背景現在、会社のプロジェクトは、フロントエンドとバックエンドが分離された方法で開発されています。新し...
1 インストールリソースパッケージmysql-8.0.18-1.el7.x86_64.rpm-bun...
目次序文コンセプト安定意味使用シナリオコードVueでの使用スロットリング意味使用シナリオコードVue...
インストールFilebeat は、より軽量でより安全なため、Logstash-Forwarder に...
序文動的プロキシの原理を説明する前に、まず、mybatis を統合した後の dao 層の 2 つの実...