ホームページ > データベース > mysql チュートリアル > SQL で LIKE 演算子と JOIN を使用して、部分的な文字列比較に基づいてレコードを照合するにはどうすればよいですか?

SQL で LIKE 演算子と JOIN を使用して、部分的な文字列比較に基づいてレコードを照合するにはどうすればよいですか?

DDD
リリース: 2024-10-26 20:21:03
オリジナル
611 人が閲覧しました

How can I use the LIKE operator with JOIN in SQL to match records based on partial string comparisons?

SQL での JOIN による LIKE の使用

データ分析では、テーブルの結合は複数のソースからのデータを組み合わせる一般的な操作です。レコードを照合する場合、あるテーブルの列が別のテーブルの列の一部と一致する「LIKE」操作を実行する必要がある場合があります。

テーブル A に列「Name」が含まれる例を考えてみましょう。 」、テーブル B には列「LastName」が含まれています。 「LIKE」操作を使用してこれらのテーブルを結合するには、次の条件を指定します。

<code class="sql">SELECT *
FROM TableA AS A
JOIN TableB AS B ON A.Name LIKE '%'+ B.LastName +'%'</code>
ログイン後にコピー

このクエリは、「Name」列に「LastName」列の一部が含まれる TableA のすべてのレコードと一致します。表Bより。たとえば、「Name」に「John Doe」が含まれ、「LastName」に「Doe」が含まれている場合、レコードは結合されます。

または、INSTR 関数を使用して、 JOIN 句:

<code class="sql">SELECT *
FROM TableA AS A
JOIN TableB AS B ON INSTR(B.LastName, A.Name) > 0</code>
ログイン後にコピー

このクエリは、TableA の "Name" 列が TableB の "LastName" 列内のどこかに出現するレコードとも一致します。

さらに、LIKE を使用することもできます。同じ結果を得るには、CONCAT 関数を使用して演算子を使用します。

<code class="sql">SELECT *
FROM TableA AS A
JOIN TableB AS B ON B.LastName LIKE CONCAT('%', A.Name ,'%')</code>
ログイン後にコピー

これらすべてのオプションで、大文字と小文字の区別の問題を避けるために、列の値を比較する前に大文字に変換することを検討することをお勧めします。

最終的に、最も効率的なソリューションは、データベース管理システムによって生成される特定のデータと実行計画によって異なります。さまざまな方法を試して、特定のケースに最適なアプローチを決定してください。

以上がSQL で LIKE 演算子と JOIN を使用して、部分的な文字列比較に基づいてレコードを照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート