当前位置: 首页 > 面试题库 >

MySQL计数子串的实例,然后按

贾骏喆
2023-03-14
问题内容

我在mySQL中遇到如下问题:

  • 在mySQL数据库的字符串字段中计算子字符串的实例
  • 按该子字符串(DESC)的出现次数对结果进行排序

除基本查询外,我什么也没做。.在其他地方找不到解决方案。


问题答案:
SELECT (CHAR_LENGTH(str) - CHAR_LENGTH(REPLACE(str, substr, ''))) / CHAR_LENGTH(substr) AS cnt
...
ORDER BY cnt DESC

是的,看起来肿,但afaik没有其他可能的解决方案。

mysql> select (CHAR_LENGTH('asd') - CHAR_LENGTH(REPLACE('asd', 's', ''))) / CHAR_LENGTH('s');
+-----------------------------------------------------------------+
| (CHAR_LENGTH('asd') - CHAR_LENGTH(REPLACE('asd', 's', ''))) / CHAR_LENGTH('s') |
+-----------------------------------------------------------------+
|                                                          1.0000 |
+-----------------------------------------------------------------+
1 row in set (0.00 sec)



mysql> select host, (CHAR_LENGTH(host) - CHAR_LENGTH(REPLACE(host, 'l', ''))) / CHAR_LENGTH('l') AS cnt from user;
+-----------+--------+
| host      | cnt    |
+-----------+--------+
| 127.0.0.1 | 0.0000 |
| honeypot  | 0.0000 |
| honeypot  | 0.0000 |
| localhost | 2.0000 |
| localhost | 2.0000 |
+-----------+--------+
5 rows in set (0.00 sec)


 类似资料:
  • 问题内容: 可以说我有下表: 现在,如何运行MySQL查询,该查询将基于“国家/城市”表返回国家和城市总数? 在示例中返回: 问题答案: 试试看: 输出:

  • 问题内容: 我的数据库中有一个页面表,每个页面可以有一个父项,如下所示: 如果选择一个以上级别,那么最好的MySQL查询是最好的选择父级,子级,子级顺序的所有页面的查询,最多三个级别。上面的示例将产生所需的顺序: 问题答案: 我认为您应该在表中再添加一个字段,称为level并将其存储在节点的level中,然后按级别然后按父级对查询进行排序。

  • 统计子串 编写算法,统计子串t在主串s中出现的次数。 输入格式: 首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在第一行中输入主串s,在第二行中输入子串t,s和t中不包含空格。 输出格式: 对于每组测试,若子串t在主串s中出现,则输出t在s中的子串位置和出现总次数,否则输出“0 0”。引号不必输出。 输入样例: 2 abbbbcdebb bb abcde bb 输出样例:

  • 问题内容: 我有一个像这样的mysql表: 当访问者访问该网站时,它将其访问者ID和页面ID存储为一行。 我试图提取恰好X次访问该网站的访问者数量。(用于图表)。因此有多少人只访问一页,有多少人访问了2页… 到目前为止,我有: 但是我不知道该如何进行计数。 可以作为mysql查询吗? 编辑: 我已经添加了答案。 问题答案: 我可以这样解决: 这一点很重要。

  • 本文向大家介绍mysql字符串的‘123’转换为数字的123的实例,包括了mysql字符串的‘123’转换为数字的123的实例的使用技巧和注意事项,需要的朋友参考一下 方法一:SELECT CAST('123' AS SIGNED); 方法二:SELECT CONVERT('123',SIGNED); 方法三:SELECT '123'+0; 以上这篇mysql字符串的‘123'转换为数字的123的

  • 所以我在做一个方法,用10000到55555的数字填充一个字符串。这些数字在6位数系统中。这意味着当我们有10005时,下一个数字是10010和11555- 我做了一个for循环,用所有数字填充字符串,但我不知道如何找到3 og更相等的数字。我想我需要另一个带有If语句的for循环,但我只是不明白。尝试同时使用 char 和 int 进行循环,但我显然做错了什么。 这是我目前掌握的情况: 有什么想