mysql特定字符出现次数统计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql特定字符出现次数统计相关的知识,希望对你有一定的参考价值。

我有两个数据表,一个表里只有一个字段,字段的名字叫“关键字”(我喜欢用中文做字段名),每条记录存一个关键字,比如唱歌是一条记录,跳舞是一条记录。

另一个表里有两个字段,分别是“姓名”和“特长”,特长的值就是“关键字”里已经有的记录值,比如:第一条记录“姓名”字段值为“张三”,“特长”值为“唱歌,跳舞,演讲”。

我的问题是怎么能用一条sql语句检索出“关键字”表中所有的值分别在另一个表“特长”字段中出现的次数。

比如3人会唱歌,6人会演讲,能一次检索出来吗

参考技术A 根据亲所说的,直接用第二表 即可检索出来.
我们暂时把第1张表定义为A,第2张表定义为B。
select 特长(字段),count(id) as 别名(人数) from B group by 特长(字段)。本回答被提问者和网友采纳

统计一段长字符串中某字符串的出现次数

  • 截取字符串统计字符串出现次数
  • 通过替换字符串,统计字符串出现次数
  • 通过正则表达式,统计字符串出现次数

 

package constxiong.interview;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 统计一段长字符串中某字符串的出现次数
 * @author ConstXiong
 * @date 2019-11-13 11:01:22
 */
public class TestCountWordTimesInText {

    public static void main(String[] args) {
        String text = "统计一CX段长CX字符串中某字符串的出C现X次cx数";
        String word = "CX";
        System.out.println(countWordTimesByCutString(text, word));
        System.out.println(countWordTimesByReplace(text, word));
        System.out.println(countWordTimesByRegex(text, word));//正则匹配,需要注通配符的使用对结果的影响
    }

    /**
     * 截取字符串统计字符串出现次数
     * @param text
     * @param word
     * @return
     */
    public static int countWordTimesByCutString(String text, String word) {
        int times = 0;
        if (!isEmpty(text) && !isEmpty(word)) {
            String subText = text;
            int index = -1;
            int wordLength = word.length();
            while (subText.length() >= wordLength && (index = subText.indexOf(word)) > -1) {
                subText = subText.substring(index + wordLength);
                times++;
            }
        }
        return times;
    }
    
    /**
     * 通过替换字符串,统计字符串出现次数
     * @param text
     * @param word
     * @return
     */
    public static int countWordTimesByReplace(String text, String word) {
        int times = 0;
        if (!isEmpty(text) && !isEmpty(word)) {
            times = (text.length() - text.replace(word, "").length()) / word.length();
        }
        return times;
    }
    
    /**
     * 通过正则表达式,统计字符串出现次数
     * @param text
     * @param word
     * @return
     */
    public static int countWordTimesByRegex(String text, String word) {
        int times = 0;
        if (!isEmpty(text) && !isEmpty(word)) {
            Pattern p = Pattern.compile(word);
            Matcher m = p.matcher(text);
            while (m.find()) {
                times++;
            }
        }
        return times;
    }
    
    /**
     * 字符串是否为空
     * @param str
     * @return
     */
    private static boolean isEmpty(String str) {
        return str == null || str.length() == 0;
    }
    
}

 


原文链接
 


技术图片

 

 

以上是关于mysql特定字符出现次数统计的主要内容,如果未能解决你的问题,请参考以下文章

mysql 统计一个字符在字符串中出现的次数

MYSQL下统计一个字段中出现字符串的种类和个数

centos下对文件某些特定字符串分组统计出现次数

c语言编程 统计输入多个字符串中每个字串出现的次数

JSK-27321 统计单词数字符串

洛谷 P1308 统计单词数字符串+模拟