如何在整列上使用LIKE进行SELECT,但不需要完全匹配?

时间:2012-05-03 21:58:49

标签: mysql

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

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

因此,这里举例说明两个表格中的格式化字符的几个例子:

T1.C1

  • Doe,John
  • 史密斯,史蒂夫
  • Roberts,Sally

T2.C2

  • #Doe,John,Thekid,Billy,Random Group A
  • 随机B组,史密斯,史蒂夫#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 , '%');

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

这匹配两个表中的字符串

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