ホームページ  >  に質問  >  本文

JSON_TABLE 値を使用して MySQL の WHERE 条件を比較する

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

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

リーリー

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

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

リーリー

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

P粉011684326P粉011684326206日前353

全員に返信(1)返信します

  • P粉251903163

    P粉2519031632024-03-28 10:05:11

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

    リーリー

    返事
    0
  • キャンセル返事