如何统计姓名为3个字的人员?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何统计姓名为3个字的人员?相关的知识,希望对你有一定的参考价值。

参考技术A

总计那栏选择where代表那个字段是用来筛选条件用的,按要求只统计姓名是三个字的人,应该在where栏下面输入len([姓名])=3才行,这样就排除了姓名是非三个字的人,也就是不管要统计什么内容,只有姓名是3个字的人才纳入统计计算。

select * from 表where group by

where是条件从海量的数据中,通过条件筛选出符合条件的数据。

男女分开,或者不分开就是看取出的dao数据做什么用的,如果统计全校3个字的人不用分开,如果要看男生3个字的,女生3个字的有多少 就要分开(像是体检,运动会项目报名之类的,当然要将男女分开来)。

扩展资料:

一个成员,它表示与对象或类关联的变量。

在数据库中,大多数时,表的“列”称为“字段” ,每个字段包含某一专题的信息。就像“通讯录”数据库中,“姓名”、“联系电话”这些都是表中所有行共有的属性,所以把这些列称为“姓名”字段和“联系电话”字段。

但是有时候,字段也不是表中的列,比如用as将列的内容经计算,“存入”另一个字段。如:一个表"T”中只有列"ID”,内容为"int"值"1"。运用"select id, id * 5 as abc from T",得出的结果为id abc 1 5。

参考资料来源:百度百科-字段

删除少于 5 个字的评论/内容

【中文标题】删除少于 5 个字的评论/内容【英文标题】:Delete Comments / Content with Less than 5 words 【发布时间】:2014-04-27 01:56:37 【问题描述】:

我的网站上有很多无用的获批 cmets。我用来删除它们的一种方法是

DELETE FROM wp_comments WHERE comment_content LIKE '%agree%with%you,%thanks%, '

但是,这也会删除好的 cmets 并遗漏很多不好的 cmets。

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

由于实际数据库中的cmet数量很多,我担心是否要运行带有like的命令,因为它会扫描超过20K行。有什么办法可以减轻负担?

【问题讨论】:

包含 5 个单词的评论通常有四个空格。 无论你使用什么技术,你总是要扫描 20K 行 @SteveMartin 因为comment_id 是递增值...我想知道是否可以多次运行查询,每次运行1K 行可能 是的,但这将增加 20K 次。无论如何,20K cmets 在整体方案中是一个非常微不足道的数字。您尝试过运行它吗? @SteveMartin Ya 我运行它...非常顺利...我需要更清楚地了解数据库方面的庞大数据。对不起,我的错。 【参考方案1】:

尝试使用 LENGTH 。下面您将删除少于 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

DEMO HERE

【讨论】:

【参考方案2】:

您可以尝试计算字符数,将所有空格替换为空'' 并减去它们。你需要CHAR_LENGTH()REPLACE

DELETE FROM wp_comments
WHERE (CHAR_LENGTH(comment_content) - CHAR_LENGTH(REPLACE(comment_content,' ',''))+1) < 5;

加 1 是一种调整,因为你的空间比单词少 1。

注意:CHAR_LENGTH() 用于mysql,您可以使用LENGTH() 用于其他人。

【讨论】:

【参考方案3】:

例如:

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

【讨论】:

【参考方案4】:

您可以尝试使用正则表达式,类似这样:

delete 
  from wp_comments
 where not (MyComment REGEXP '[A-Za-z]+([[:space:]]+[A-Za-z]+)4,')

【讨论】:

【参考方案5】:

最有效的方法是:

MySQL 查询开始:

-- Select All Rows

mysql> SELECT * FROM comments;
+----+---------------------------------------------------------------------------------------------------------------+---------------------+
| id | comments                                                                                                      | log_time            |
+----+---------------------------------------------------------------------------------------------------------------+---------------------+
|  1 | This Comment has 4 space                                                                                      | 2014-03-20 16:05:33 |
|  2 | Lorem ipsum dolor sit amet.                                                                                   | 2014-03-20 16:08:12 |
|  3 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum molest                                      | 2014-03-20 16:08:12 |
|  4 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa, eum, fuga dolorum cupiditate blanditiis enim  | 2014-03-20 16:08:29 |
|  5 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam                                              | 2014-03-20 16:08:29 |
|  6 | Lorem ipsum dolor sit amet.                                                                                   | 2014-03-20 16:09:09 |
|  7 | Lorem ipsum dolor sit amet.                                                                                   | 2014-03-20 16:09:16 |
|  8 | Lorem ipsum dolor sit amet.                                                                                   | 2014-03-20 16:09:18 |
+----+---------------------------------------------------------------------------------------------------------------+---------------------+
8 rows in set (0.00 sec)

-- Check Space Count

mysql> SELECT comments, (
    -> length( trim( comments ) ) - length( replace( trim( comments ) , ' ', '' ) )
    -> ) AS total_space
    -> FROM comments
    -> LIMIT 0 , 30;
+---------------------------------------------------------------------------------------------------------------+-------------+
| comments                                                                                                      | total_space |
+---------------------------------------------------------------------------------------------------------------+-------------+
| This Comment has 4 space                                                                                      |           4 |
| Lorem ipsum dolor sit amet.                                                                                   |           4 |
| Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum molest                                      |           9 |
| Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa, eum, fuga dolorum cupiditate blanditiis enim  |          14 |
| Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam                                              |           8 |
| Lorem ipsum dolor sit amet.                                                                                   |           4 |
| Lorem ipsum dolor sit amet.                                                                                   |           4 |
| Lorem ipsum dolor sit amet.                                                                                   |           4 |
+---------------------------------------------------------------------------------------------------------------+-------------+
8 rows in set (0.00 sec)

-- Delete Those Records who Has less than 5 words

mysql> DELETE FROM comments WHERE (
    -> length( trim( comments ) ) - length( replace( trim( comments ) , ' ', '' ) )
    -> ) < 5;
Query OK, 5 rows affected (0.16 sec)

-- Select All Rows Again to Verify Rows

mysql> SELECT * FROM comments;
+----+---------------------------------------------------------------------------------------------------------------+---------------------+
| id | comments                                                                                                      | log_time            |
+----+---------------------------------------------------------------------------------------------------------------+---------------------+
|  3 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Laborum molest                                      | 2014-03-20 16:08:12 |
|  4 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa, eum, fuga dolorum cupiditate blanditiis enim  | 2014-03-20 16:08:29 |
|  5 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magnam                                              | 2014-03-20 16:08:29 |
+----+---------------------------------------------------------------------------------------------------------------+---------------------+
3 rows in set (0.00 sec)

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

-- 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;

-- Live DEMO

点击这里查看Live DEMO

【讨论】:

以上是关于如何统计姓名为3个字的人员?的主要内容,如果未能解决你的问题,请参考以下文章

数据库里,统计所有姓王和姓李的学生人数。代码

怎样做EXCEL随机姓名生成器...生成3个字的姓名

删除少于 5 个字的评论/内容

oracle汉字转全拼

关于access查询

MySQL 练习题2