Mysql 删除少于5个单词的评论/内容

Mysql 删除少于5个单词的评论/内容,mysql,sql,wordpress,phpmyadmin,Mysql,Sql,Wordpress,Phpmyadmin,我的网站上有很多无用的评论。我用来移除它们的一种方法是 DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, ' 然而,这也会删除好的评论,而忽略很多不好的评论 如何修改查询以删除少于5个单词的注释 由于实际数据库中有大量注释,我担心是否使用like运行命令,因为它将扫描超过20K行。有没有办法减少负载?尝试使用长度。下面您将删除少于35个字符的条目。我认为这比用语言更好 length(com

我的网站上有很多无用的评论。我用来移除它们的一种方法是

DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, '
然而,这也会删除好的评论,而忽略很多不好的评论

如何修改查询以删除少于5个单词的注释

由于实际数据库中有大量注释,我担心是否使用like运行命令,因为它将扫描超过20K行。有没有办法减少负载?

尝试使用长度。下面您将删除少于35个字符的条目。我认为这比用语言更好

length(comment_content) < 35 --//change length number as you want //35 characters
就像这样:

  DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, '
                           AND   length(comment_content) < 35
delete 
  from wp_comments
 where not (MyComment REGEXP '[A-Za-z]+([[:space:]]+[A-Za-z]+){4,}')
尝试使用长度。下面您将删除少于35个字符的条目。我认为这比用语言更好

length(comment_content) < 35 --//change length number as you want //35 characters
就像这样:

  DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, '
                           AND   length(comment_content) < 35
delete 
  from wp_comments
 where not (MyComment REGEXP '[A-Za-z]+([[:space:]]+[A-Za-z]+){4,}')

您可以尝试计数字符,将所有空格替换为空并减去它们。您将需要字符长度和替换

加1是一种调整,因为您将比单词少1个空格


注意:对于mysql,可以使用字符长度。您可以尝试计数字符,将所有空格替换为空,然后减去它们。您将需要字符长度和替换

加1是一种调整,因为您将比单词少1个空格

注意:对于mysql,可以使用字符长度。例如:

SELECT LENGTH('this is a test')x,LENGTH(REPLACE('this is a test',' ',''))y;
+----+----+
| x  | y  |
+----+----+
| 14 | 11 |
+----+----+

14-11 = 3
3+1 = 4

This sentence has 4 words
例如:

您可以尝试使用正则表达式,例如:

  DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, '
                           AND   length(comment_content) < 35
delete 
  from wp_comments
 where not (MyComment REGEXP '[A-Za-z]+([[:space:]]+[A-Za-z]+){4,}')
您可以尝试使用正则表达式,例如:

  DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, '
                           AND   length(comment_content) < 35
delete 
  from wp_comments
 where not (MyComment REGEXP '[A-Za-z]+([[:space:]]+[A-Za-z]+){4,}')

最有效的方法是:

MySQL查询开始:

-选择所有行

-检查空间计数

-删除少于5个单词的记录

在您的情况下,您可以这样使用:

-- Check Space Count
SELECT comment_content, (
length( trim( comment_content ) ) - length( replace( trim( comment_content ) , ' ', '' ) )
) AS total_space
FROM wp_comments
LIMIT 0 , 30;

-- Delete those comments who has less than 5 words
DELETE FROM wp_comments WHERE (
length( trim( comment_content ) ) - length( replace( trim( comment_content ) , ' ', '' ) )
) < 5;
-现场演示


单击此处查看

最有效的方法是:

MySQL查询开始:

-选择所有行

-检查空间计数

-删除少于5个单词的记录

在您的情况下,您可以这样使用:

-- Check Space Count
SELECT comment_content, (
length( trim( comment_content ) ) - length( replace( trim( comment_content ) , ' ', '' ) )
) AS total_space
FROM wp_comments
LIMIT 0 , 30;

-- Delete those comments who has less than 5 words
DELETE FROM wp_comments WHERE (
length( trim( comment_content ) ) - length( replace( trim( comment_content ) , ' ', '' ) )
) < 5;
-现场演示


单击此处查看

带有5个单词的注释通常有4个空格。无论使用何种方法,您总是要扫描20K行use@SteveMartin由于注释id是递增的值。。。我想知道我是否可以在1K行maybeYes上运行多次查询,但这总共是20K次。不管怎么说,在整个计划中,2万条评论是一个相当小的数目。你试过了吗?@Steve Martin Ya我试过了。。。这么顺利。。。我需要更清楚地了解数据库的巨大之处。对不起,我的不好。5个单词的注释通常有4个空格。无论使用何种方法,您总是要扫描20K行use@SteveMartin由于注释id是递增的值。。。我想知道我是否可以在1K行maybeYes上运行多次查询,但这总共是20K次。不管怎么说,在整个计划中,2万条评论是一个相当小的数目。你试过了吗?@Steve Martin Ya我试过了。。。这么顺利。。。我需要更清楚地了解数据库的巨大之处。对不起,我的错。