2011-08-19 35 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
相關問題