如何检查第一列的行是否与第二列相似?

时间:2011-08-19 01:40:32

标签: php mysql

我使用查询

Select t1.name as first, t2.name as second From products t1, products t2

创建两个列,如下所示。 (A,B用于解释目的)

在查询之前

-name-
A
B
C
D
E

查询后

-first- -second-
A        A
B        A
C        A
D        A
E        A
A        B
B        B
C        B
D        B
E        B

如何检查第一列的行是否与第二列相似?

更新

我运行mySQL

与此类似,我的意思是要发现它们的相似性百分比更多是指定值。就像第一个包含this is a string和第二个i wear a string一样,存在一定比例的相似性。如果这个%超过70,则它们是相似的。

2 个答案:

答案 0 :(得分:0)

有很多方法,这里有一个可以提供符合您标准的所有产品(第一个=第二个)

SELECT
  t1.name AS first, t2.name AS second 
FROM
  products t1, products t2
WHERE
  t1.name = t2.name

或者,如果您需要所有值

Select
  t1.name as first t2.name as second, (if t1.name = t2.name THEN 1 ELSE 0) as match
From 
  products t1, products t2

答案 1 :(得分:0)

好的,这是做什么的。

  1. 像你一样运行select脚本以获得所有可能 你想要计算的组合。
  2. 制作一个循环的PHP脚本 通过这些中的每一个并计算相似性的百分比 在php中使用similar_text函数 (http://www.php.net/manual/en/function.similar-text.php)
  3. 将所有三个值都写入新表
  4. 现在只查询新表 获取百分比大于70的所有行。