JSON_TABLE 値を使用して MySQL の WHERE 条件を比較する
P粉011684326
P粉011684326 2024-03-27 11:34:54
0
1
412

JSON 値のカンマ区切りリストとして ID のリストを取得しました。いくつかのサンプル データセットは次のとおりです [340596,340597,340595] このリストは非常に大きくなり、場合によっては 50,000 個の ID がカンマで区切られます。

次のクエリは、これらの ID をテーブルの主キーに接続し、テーブルに現在存在するレコードを取得します

リーリー

メイン テーブルにこれらの ID が含まれているか、これらのレコードがメイン テーブルから削除されている可能性があるため、このクエリの目的は、返された結果セットにアクティブなレコードのみが含まれていることを確認することです

このクエリにもう 1 つのフィルタリングを適用する必要があります。このフィルタリングは別の JSON int 配列に基づいており、それを ContactID 列と照合する必要があります

リーリー

ただし、大きな結果セットの場合、Mysql IN のパフォーマンスは向上しません。この IN をもっと良いものに置き換えることはできますか?

P粉011684326
P粉011684326

全員に返信(1)
P粉251903163

IN 句の ID を一時テーブルにダンプし、それらを JSON_TABLE と結合して結果を取得できます。 あるいは、CTE を使用して楽しみに参加することもできます。

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート