最近、IM を実行するときに、これらの 3 つのキーワードを同時に使用したときに問題が発生しました。これは、ある人物のオフライン メッセージの詳細を照会することです。サーバーからクライアントに返される詳細には、3 つの内容が含まれます。1 つ目は、オフライン期間中にどの人物またはグループがメッセージを送信したかを一覧表示することです。2 つ目は、特定の人物またはグループが送信したオフライン メッセージの数です。3 つ目は、最新のメッセージを表示することです。当然、オフライン メッセージを送信した人またはグループをグループ化し、count() でオフライン メッセージの数を取得し、時間順に並べ替えて最新のメッセージを取得します。 すると、予想通り、group by と order by を一緒に検索するとエラーが発生します。ネストされたサブクエリを使用できます。 すでにソートされた結果をグループ化して、その数を計算できます。ここには隠れた落とし穴がありますが、私は偶然それを避けてしまいました。実際、count() は order by ソートを無効にします。例えば: このステートメントは最終的に、msg_data が実際にはまったくソートされていない、つまりデータベースの元の順序のレコードを取得します。これは最初に挿入されたメッセージ、つまり古いメッセージである必要があります。この問題を回避するには、ネストされたサブクエリを最初にソートし、次に count() を使用してこの問題を回避します。意図せずに回避しましたが、文を修正して何度もテストした後で発見しました。 以下もご興味があるかもしれません:
|
<<: Linux サービスでファイアウォールを有効にする 2 つの方法
>>: Vue の関連ページへのマルチレベルジャンプ (ページドリルダウン) 機能の完全な例
1. SQL インジェクションとは何ですか? SQL インジェクションは、入力パラメータに SQL ...
開発に携わっている友人、特に MySQL に関係のある友人は、非常に遅い MySQL クエリに遭遇す...
1. サーブレットとは何か1.1. 正式な言葉で説明する:サーブレットは、動的な Web リソースを...
0. リモート開発が必要な理由組み込み Linux を開発する場合、便宜上、通常は Windows ...
関連する依存関係をインストールするnpm i lib-flexible --save npm i p...
Nginx 仮想ドメイン名設定を使用すると、ドメイン名を購入せずに特定のドメイン名を介してローカル ...
目次序文1. 取引の基本原則の簡単な分析原子性:持続性分離:一貫性: 2. 分離レベルの基本原理の分...
Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...
バージョンチェーンInnoDB エンジン テーブルでは、クラスター化インデックス レコードに 2 つ...
この記事では、JavaScriptで簡単な画像切り替えを実現するための具体的なコードを参考までに紹介...
テーブルの基本構文<table>...</table> - テーブルを定義し...
序文ブラウザをどのようにズームしても、ボックス コンテナーの高さを常に 100% に保つ必要がある場...
ソート問題最近、Geek Time の「45 Lectures on MySQL Practice」...
序文この記事では、DDCTF の 5 番目の質問、つまり不明なフィールド名をバイパスする手法を紹介し...
1. MySQLをダウンロードするURL: https://dev.mysql.com/downlo...