匹配两个不同列中的内容--MySQL

时间:2017-02-14 19:10:33

标签: mysql matching

假设我有一个人名列表和社交媒体网址列表(可能包含也可能不包含部分人名)。

我正在尝试查看我的网址列表中是否包含 not 的全名。我不认为“不喜欢”会在这里工作(因为URL有很多其他字符可以抛出结果),但我想不出任何其他方法来解决这个问题。有小费吗?我能找到的最接近的是:

Matching partial words in two different columns

但我不确定这是否适用于此。

1 个答案:

答案 0 :(得分:0)

使用SELECT * FROM yourtable WHERE url LIKE '%name%'%表示任何字符甚至是空格。然后检查它是否返回任何行。

来自mysql doc:

  

%匹配任意数量的字符,即使是零个字符。

mysql> SELECT 'David!' LIKE 'David_';
-> 1
mysql> SELECT 'David!' LIKE '%D%v%';
-> 1

所以,让我们说这些是您列表中的网址:
website.com/peterjohnson
website.com/jackmiller
website.com/robertjenkins

然后你会这样做:

SELECT * FROM urls WHERE url LIKE '%peter%'

它将返回1行。

您也可以使用NOT LIKE,这样您就可以获得所有不包含名称的行。