ホームページ >データベース >mysql チュートリアル >テーブルのリレーションシップを使用せずに MySQL でカンマ区切り値を効率的に検索する方法

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 01:06:14524ブラウズ

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 を使用すると、検索効率が向上し、誤検知を回避できます。

追加の考慮事項:

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

以上がテーブルのリレーションシップを使用せずに MySQL でカンマ区切り値を効率的に検索する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。