1

SELECT特定の文字やワイルドカードの代わりに列全体を使用して、2 つのテーブルで部分一致を実行しようとしています。

2 つのテーブル (T1、T2) と 2 つの列 (T1.C1、T2.C2) があります。C1 と C2 が正確にフォーマットされた一致である場合にリターンを得ることができますがSELECT、C2 は C1 からのテキスト文字列を含むテキストをつなぎ合わせています。

そのため、例として、2 つのテーブルの書式設定された文字の例をいくつか示します。

T1.C1

  • ドウ、ジョン
  • スミス、スティーブ
  • ロバーツ、サリー

T2.C2

  • #Doe、John、Thekid、Billy、ランダム グループ A
  • ランダム グループ B, Smith, Steve# Jones, Allie
  • #Roberts, Sally!Random GroupC など

私ができるようにしたいのは、T1.C1 の「Doe、John」が T2.C2 で見つかった場合に一致することですが、そのテーブルでは「#Doe、John、Thekid、Billy、Random Group A」としてフォーマットされています。

これが私が正確な一致を得るために使用しているものです...

SELECT *
FROM T1, T2
WHERE T1.C1 LIKE CONCAT('%', T2.C2 , '%');
4

2 に答える 2

1

SELECT t1.c1, t2.c2 FROM t1 JOIN t2 WHERE t2.c2 LIKE CONCAT('%',t1.c1,'%');

これは、両方のテーブルの文字列に一致します

http://sqlfiddle.com/#!2/20df8/21

于 2012-05-03T22:34:29.820 に答える
1

どうですか

SELECT *
FROM T1, T2
WHERE T2.C2 LIKE CONCAT('%', T1.C1 , '%');

? つまり、T1.C1 の文字列を含む T2.C2 です。

于 2012-05-03T22:05:19.563 に答える