1

我正在尝试SELECT使用整个列而不是特定字符或通配符对两个表进行部分匹配。

我有两个表(T1,T2)和两列(T1.C1,T2.C2)。当 C1 和 C2 是完全格式化的匹配时,我能够得到一个返回SELECT,但是,C2 已经将包含来自 C1 的文本字符串的文本串在一起。

因此,作为示例,这里是两个表中格式化字符的一些示例:

T1.C1

  • 能源部,约翰
  • 史密斯,史蒂夫
  • 罗伯茨,莎莉

T2.C2

  • #Doe、John、Thekid、Billy、随机 A 组
  • 随机 B 组,史密斯,史蒂夫#琼斯,艾莉
  • #Roberts、Sally!Random GroupC 等。

我想做的是在 T2.C2 中找到来自 T1.C1 的“Doe,John”时进行匹配,即使在该表中它的格式为“#Doe, John, Thekid, Billy, Random Group A”

这是我用来获得完全匹配的...

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

2 回答 2

1

关于什么

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

? 即,T2.C2 包含 T1.C1 中的字符串。

于 2012-05-03T22:05:19.563 回答
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 回答