2014-01-06 58 views
0

我有一個表格,其結構如下。檢查Mysql中的重複值

`post_id` int(5) NOT NULL AUTO_INCREMENT, 
`post_title` varchar(250) NOT NULL, 
`post_desc` text NOT NULL, 
`post_siteid` int(5) NOT NULL 

是否有可能在MySQL或PHP編寫一個查詢來檢查存儲在post_desc每個值是針對存儲在同一post_desc場並返回所有其他值類型的文本,如果它被複制,也返回文本重複的百分比以及重複的行數?

+0

請問您是否可以詳細說明「*返回多少文本%重複*」的含義?也許一個例子會有助於澄清。 – eggyal

+0

這裏有兩個單獨的問題......你在尋找重複的文本(文本是完全一樣的)還是你正在尋找post_desc就像其他post_descs? – Twelfth

+0

@eggyal例如,如果「post_desc」字段中第一行的內容是「Lorem Ipsum」,那麼它只是印刷和排版行業的虛擬文本。「如果相同的文本在其他行中重複,則查詢應該返回100%(如果它完全重複)。查詢應該返回75%,如果它部分重複....等等。 百分比並不重要。即使查詢返回文本重複的行,也應該足夠了。 –

回答

1
SET @a = 'hello'; 
SET @b = 'hell'; 

SELECT ((LENGTH(@a)-LENGTH(REPLACE(@a,@b,'')))/LENGTH(@a))*100 x; 
+---------+ 
| x  | 
+---------+ 
| 80.0000 | 
+---------+