Php 在Mysql中检查重复值

Php 在Mysql中检查重复值,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我有一张具有以下结构的桌子 `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字段中的所有其他值,并返回是否重复,还返回重复文本的百分比以及重复文本的行数

我有一张具有以下结构的桌子

`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
字段中的所有其他值,并返回是否重复,还返回重复文本的百分比以及重复文本的行数?

可以吗详细说明您所说的“返回文本重复的百分比”是什么意思?也许一个例子有助于澄清。这里有两个独立的问题……您是在寻找重复文本(文本完全相同)还是在寻找与其他post_desc类似的post_desc?@eggyal例如,如果
post_desc
字段中第一行的内容是“Lorem Ipsum只是印刷和排版行业的虚拟文本。如果同一文本在其他行中重复,则如果该文本完全重复,则查询应返回100%。如果部分重复,查询应返回75%。。。。等等百分比并不重要。即使查询返回文本重复的行,也应该足够了。@12我希望将post_desc中的每一行与所有其他post_desc进行比较,并返回重复的行(如果有)。我不确定文本“部分重复”意味着什么。假设另一行包含“Foo和bar经常用作伪变量名”,这是您的Lorem Ipsum示例的部分重复,因为它们都包含单词“dummy”?如果是,部分匹配应如何量化?那包含“This is dumb.”的行呢?它与Lorem Ipsum示例共享单词“is”和单词stem“dum-”(但没有语义关系)?或者“我需要占位符副本来排版和打印。”这两个词有两个共同的词干,并且在语义上密切相关?
SET @a = 'hello';
SET @b = 'hell';

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