2011-08-19 82 views
2

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

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 

如何检查之后,如果第一列的行类似于第二?

UPDATE

我运行MySQL

类似的,我的意思是希望能够找到自己相似的百分比都多了一个规定值的。如果第一个包含this is a string和第二个i wear a string,则会有相似百分比。如果这个百分比超过70,那么它们是相似的。

+2

通过类似的你是什么意思?相同? –

+0

我的意思是喜欢找到他们的相似性百分比更多是一个指定的值。就像第一个包含“这是一个字符串”和第二个“我穿一个字符串”一样,有一定百分比的相似性。如果这个百分比超过70,那么它们是相似的。 – EnexoOnoma

+0

你在运行什么数据库? – solidau

回答

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

请看我更新的问题,我解释了我的意思是类似的。 – EnexoOnoma

0

好的,这是做什么。

  1. 像你一样运行选择脚本以获得想要计算的所有可能的 组合。
  2. 使PHP脚本,循环 通过每一个这些和在PHP 使用similar_text功能由 计算相似度的百分比(http://www.php.net/manual/en/function.similar-text.php )
  3. 写所有三个值到新表
  4. 现在只是查询新表 获得的所有行百分比大于70
相关问题