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我试过了。。。这么顺利。。。我需要更清楚地了解数据库的巨大之处。对不起,我的错。