「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > テーブルのリレーションシップを使用せずに MySQL でカンマ区切り値を効率的に検索する方法

テーブルのリレーションシップを使用せずに MySQL でカンマ区切り値を効率的に検索する方法

2024 年 12 月 21 日に公開
ブラウズ:599

How to Efficiently Search Comma-Separated Values in MySQL Without Using Table Relationships?

MySQL データベースでのカンマ区切り値の効率的な検索

カンマ区切り値を含むデータ テーブルを操作する場合、特定の一致を見つけることができます。やりがいのある仕事になる。この場合、customers (電子メール アドレスを含む) と imap_emails (to フィールドにカンマ区切りの電子メール アドレスが含まれる) という 2 つのテーブルがあります。 Customers テーブルの電子メール アドレスに基づいて imap_emails テーブル内を効率的に検索する必要があります。

LIKE 条件を使用する代わりに、FIND_IN_SET 関数を利用して、よりターゲットを絞った検索を実行できます。この関数を使用すると、カンマ区切りの文字列内に特定の値が見つかるかどうかを確認できます。

解決策:

次のクエリは、効率的な検索のために FIND_IN_SET を使用する方法を示しています。検索:

SELECT *
FROM imap_emails
INNER JOIN customers
ON FIND_IN_SET(customers.email, imap_emails.to) > 0

このクエリは、2 つのテーブル間で内部結合を実行し、imap_emails テーブルのカンマ区切り to フィールドに顧客の電子メールが存在する行を照合します。 LIKE の代わりに FIND_IN_SET を使用すると、検索効率が向上し、誤検知を回避できます。

追加の考慮事項:

質問の中で、次の間の関係は使用できないと述べました。テーブル。ただし、関係を確立できる場合 (外部キーを使用するなど)、データの整合性と検索クエリのパフォーマンスが大幅に向上します。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3