以前は、このような使用シナリオを処理するために 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. pipとは何かpip は、Python パッケージの検索、ダウンロード、インストール、アンイ...
目次1. 関数の定義1.1 JavaScript の関数1.2 TypeScriptの関数2. オプ...
目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...
ブラウザでのページのレンダリング時間をできるだけ短縮するにはどうすればよいでしょうか? この記事は、...
この記事では主に、Vue でシンプルな無限ループスクロールアニメーションを実装し、みんなで共有する例...
1. ダウンロード参考: 2. D:\MySQL\mysql-5.7.24 などの固定の場所に解凍し...
共通点: DIV タグと SPAN タグは、コンテンツ全体を非表示にしたり、コンテンツ全体を移動した...
1. CentOS Linuxにffmpegをインストールする1.ダウンロードして解凍する http...
リスト形式のテキストの展開と折りたたみの実装は参考までに。具体的な内容は以下のとおりです。必要: 1...
Nginx ngx_http_image_filter_module モジュール (nginx バ...
ここ2日間ちょっと忙しくて、公式アカウントも数日更新が止まってしまいました。その結果、何人かの読者か...
SEO とセキュリティを考慮して、301 リダイレクトが必要です。以下の一般的な処理には Nginx...
序文JavaScript は、キーワードを使用してプライベート変数を宣言できる他の言語とは異なります...
Nginx を使用して Tomcat9 クラスターを構築し、Redis を使用してセッション共有を実...
MySQLリモート接続の問題に関しては、会社で働いているときに誰かのコンピュータに保存されているMy...