2014-01-06 6 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

Не могли бы вы рассказать о том, что вы подразумеваете под «* return, сколько процентов текста дублируется *»? Возможно, пример поможет прояснить. – 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 | 
+---------+ 
Смежные вопросы